vvas_xinfer supports two inference runtime families. The
inference-backend-runtime field selects the family; for ONNX Runtime, the
onnxrt-ep field selects whether inference runs on the NPU (Vitis AI EP) or on
the CPU (CPU EP). If inference-backend-runtime is not set, vvas_xinfer
defaults to onnxrt. If onnxrt-ep is not set, the plugin defaults to the
CPU EP.
Runtime configuration |
NPU use |
Notes |
|---|---|---|
|
Yes |
Direct NPU path with the lowest runtime overhead. Recommended for best
throughput when a VART |
|
Yes |
Hardware-accelerated ONNX Runtime path. Valid accelerated option with additional ONNX Runtime framework and tensor-format conversion overhead compared with direct VART. |
|
No |
Software fallback path. Does not use the NPU and is expected to be slower for models compiled for NPU deployment. |
For best throughput, use vart when a VART model is available. onnxrt with
Vitis AI EP is also hardware accelerated and is appropriate when the deployment
artifact is an ONNX model. The main performance risk is accidentally using the
CPU EP (for example, omitting onnxrt-ep or vitisai-ep-config), not
choosing onnxrt itself.
Example vart configuration:
{
"infer-config": {
"inference-backend-runtime": "vart",
"vart-config": {
"vart-model-path": "/etc/vai/models/ResNet50/ResNet50.rai"
}
}
}
Example onnxrt configuration with Vitis AI EP:
{
"infer-config": {
"inference-backend-runtime": "onnxrt",
"onnxrt-config": {
"onnx-model-path": "/etc/vai/models/ResNet50_INT8/ResNet50_INT8.onnx",
"input-tensor-layout": "NCHW",
"onnxrt-ep": "vitisai",
"vitisai-ep-config": {
"config-file-path": "/etc/vai/models/ResNet50_INT8/vitisai_config.json",
"cache-dir": "/etc/vai/models",
"cache-key": "ResNet50_INT8"
}
}
}
}
Check the backend field in the profiler JSON to verify the selected runtime.
For ONNX Runtime, the profiler reports onnxruntime:vitisai-ep when the Vitis AI EP is active and onnxruntime:cpu-ep when the CPU EP is active.
Note
When a compiled ONNX model is only partially offloaded to the NPU, ONNX Runtime can execute supported subgraphs through the Vitis AI EP and unsupported portions through CPU EP in the same session. If measured throughput is lower than expected, review compilation offload coverage and confirm the profiler does not show unintended CPU EP use.