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 | 多个硬件厂商 |
这些是典型的硬件和厂家,但请注意,具体的执行提供程序的可用性和兼容性可能会因版本、操作系统和硬件配置而有所不同。