الوحدة 7 — مزوّدو التنفيذ: CPU وGPU وTensorRT
رسم ONNX واحد يمكن أن يعمل على عشرات المنصّات: وحدة معالجة مركزيّة عاديّة، بطاقة NVIDIA بـTensorRT، شريحة Intel بـOpenVINO، هاتف بـCoreML، متصفّح بـWebAssembly. الأداة التي تُحقّق هذا هي مزوّد التنفيذ (Execution Provider، أو EP). كلّ EP يعرف كيف يُترجم عمليّات ONNX إلى تنفيذ على عتاده. هذه الوحدة تُظهر كيف نختار الترتيب الصحيح، ولماذا يهمّ.
قائمة المزوّدين الرئيسيّة
| المزوّد | العتاد المستهدف | الحزمة pip |
|---|---|---|
CPUExecutionProvider | كلّ CPU (افتراضيّ) | onnxruntime |
CUDAExecutionProvider | NVIDIA GPU (CUDA) | onnxruntime-gpu |
TensorrtExecutionProvider | NVIDIA GPU مع TensorRT | onnxruntime-gpu + TensorRT |
DmlExecutionProvider | Windows DirectML (كلّ GPU) | onnxruntime-directml |
OpenVINOExecutionProvider | Intel CPU/GPU/VPU | onnxruntime-openvino |
CoreMLExecutionProvider | Apple Silicon | onnxruntime-coreml |
قائمة الاستيراد يمكن استعراضها في أيّ وقت:
import onnxruntime as ort
print(ort.get_available_providers())
# مثال : ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']