1 代碼導出
import onnxruntime as ort
aaa = ort.get_all_providers()
print(aaa)
1. 1 下面是ort支持的所有后端
'TensorrtExecutionProvider', 'CUDAExecutionProvider', 'MIGraphXExecutionProvider',
'ROCMExecutionProvider', 'OpenVINOExecutionProvider', 'DnnlExecutionProvider',
'TvmExecutionProvider', 'VitisAIExecutionProvider', 'NnapiExecutionProvider',
'CoreMLExecutionProvider', 'ArmNNExecutionProvider', 'ACLExecutionProvider',
'DmlExecutionProvider', 'RknpuExecutionProvider', 'XnnpackExecutionProvider',
'CANNExecutionProvider', 'AzureExecutionProvider', 'CPUExecutionProvider'
1.1.1 詳細介紹:
執行提供程序(Execution Provider) | 描述 | 典型硬件 | 典型廠家 |
---|---|---|---|
TensorrtExecutionProvider | 利用TensorRT進行高性能推斷 | NVIDIA GPU | NVIDIA |
CUDAExecutionProvider | 使用CUDA在GPU上進行推斷 | NVIDIA GPU | NVIDIA |
MIGraphXExecutionProvider | 使用MIGraphX在AMD GPU上進行推斷 | AMD GPU | AMD |
ROCMExecutionProvider | 在AMD ROCm平臺上進行推斷 | AMD GPU | AMD |
OpenVINOExecutionProvider | 使用OpenVINO進行推斷 | 多種硬件(包括Intel CPU、GPU、FPGA等) | Intel |
DnnlExecutionProvider | 使用DNNL進行推斷 | 多種硬件(包括Intel CPU、GPU等) | Intel |
TvmExecutionProvider | 使用TVM進行推斷 | 多種硬件(包括CPU、GPU等) | 社區驅動 |
VitisAIExecutionProvider | 在Xilinx FPGA上使用Vitis AI進行推斷 | Xilinx FPGA | Xilinx |
NnapiExecutionProvider | 在Android設備上使用NNAPI進行推斷 | Android設備 | |
CoreMLExecutionProvider | 在Apple設備上使用Core ML進行推斷 | Apple設備 | Apple |
ArmNNExecutionProvider | 在Arm設備上使用Arm NN進行推斷 | Arm設備 | Arm |
ACLExecutionProvider | 在Arm Compute Library上進行推斷 | Arm設備 | Arm |
DmlExecutionProvider | 在DirectML上進行推斷 | DirectX 12兼容的GPU | Microsoft |
RknpuExecutionProvider | 在Rockchip NPU上進行推斷 | Rockchip NPU | Rockchip |
XnnpackExecutionProvider | 使用XNNPack進行推斷 | 多種硬件(包括CPU) | 社區驅動 |
CANNExecutionProvider | 在華為NPU上進行推斷 | 華為NPU | 華為 |
AzureExecutionProvider | 在Azure平臺上進行推斷 | 多種硬件(包括CPU、GPU等) | Microsoft |
CPUExecutionProvider | 在CPU上進行推斷 | CPU | 多個硬件廠商 |
這些是典型的硬件和廠家,但請注意,具體的執行提供程序的可用性和兼容性可能會因版本、操作系統和硬件配置而有所不同。