تدريب AMD GPU والاستدلال باستخدام Ultralytics YOLO وROCm وMIGraphX#
يستهدف هذا الدليل أجهزة المضيف Linux x86_64 المثبّت عليها برنامج تشغيل نواة AMD GPU (amdgpu)، وجميع الأوامر أدناه مخصصة لصدفة Linux. يُنشر موفّر التنفيذ MIGraphX على هيئة حزم wheel لنظام Linux x86_64 فقط، خاصةً بـ Python 3.11 أو أحدث؛ لذلك لا يُدعم Windows الأصلي، كما لم يتم التحقق من Windows Subsystem for Linux (WSL2) بعد.
تعمل Ultralytics YOLO على وحدات معالجة الرسومات AMD Instinct ووحدات Radeon المدعومة عبر ROCm، وهي حزمة AMD المفتوحة للحوسبة على GPU. باستخدام إصدار PyTorch المبني لـ ROCm، يمكنك التدريب والتحقق والتنبؤ بنماذج .pt باستخدام وسيطة device=0 نفسها المستخدمة مع أي GPU آخر، دون تغيير الشيفرة.
للنشر، صدّر النموذج المُدرّب إلى ONNX وشغّله عبر MIGraphX، محرّك AMD لتحسين الرسوم البيانية والاستدلال. تكتشف الواجهة الخلفية لـ ONNX في Ultralytics وجود ROCm وتختار MIGraphXExecutionProvider الخاص بـ ONNX Runtime تلقائياً؛ وبذلك يعمل استدعاء predict نفسه، المستخدم على وحدات NVIDIA GPU، على وحدات AMD GPU. وتشغّل عمليات التكامل المستمر المجدولة في Ultralytics تصدير ONNX والاستدلال باستخدام MIGraphX لكل مهمة على أجهزة AMD GPU.
التثبيت#
يُثبّت مكدس Python بالكامل عبر pip من فهارس حزم wheel الخاصة بـ ROCm التابعة لـ AMD، لذا لا حاجة إلى حزم apt أو صلاحيات الجذر لتثبيت PyTorch أو الملحق أو مكتبات وقت تشغيل ROCm، شريطة أن يكون برنامج تشغيل نواة AMD GPU (amdgpu / /dev/kfd) مثبتاً مسبقاً على المضيف.
اكتشف بنية GPU لديك (مثل gfx1151 على Strix Halo) وثبّت نوى PyTorch اللازمة لها فقط:
# Read the GPU architecture from the amdgpu driver, e.g. device-gfx1151
GPU_ARCH=$(grep -rhs '^gfx_target_version' /sys/class/kfd/kfd/topology/nodes | awk '$2 {printf "device-gfx%d%d%x\n", int($2/10000), int($2/100)%100, $2%100}' | sort -u | paste -sd, -)
# ROCm PyTorch + torchvision for the detected architecture
pip install "torch[${GPU_ARCH:?No AMD GPU found}]" "torchvision[$GPU_ARCH]" --index-url https://stable.repo.amd.com/rocm/whl-next/
# Ultralytics
pip install ultralyticsتثبّت Ultralytics onnx تلقائياً عند أول تصدير إلى ONNX. وعند أول عملية استدلال بـ ONNX على نظام ROCm، تثبّت أيضاً ملحق موفّر التنفيذ MIGraphX (onnxruntime-ep-migraphx) ومكتبات وقت تشغيل MIGraphX التي يحمّلها (migraphx-libs)، مع تثبيت إصدارات جرى اختبارها معاً. لا يُنشر الملحق إلا لأنظمة Linux x86_64 التي تستخدم Python 3.11 أو أحدث؛ وفي إصدارات Python أو البنى الأخرى، أو عند استخدام YOLO_AUTOINSTALL=false دون تثبيت الملحق، يعود استدلال ONNX إلى CPU مع إصدار تحذير. للحصول على تعليمات مفصلة وأفضل الممارسات، راجع دليل تثبيت YOLO26؛ وإذا واجهت أي صعوبات، فراجع دليل المشكلات الشائعة.
تحقق من أن PyTorch يتعرّف على AMD GPU قبل التدريب أو التصدير:
import torch
print(torch.cuda.is_available()) # صحيح عند عمل تثبيت ROCm
print(torch.cuda.get_device_name(0)) # اسم AMD GPU، مثل AMD Radeon 8060S
print(torch.version.hip) # إصدار HIP في إصدار PyTorch المبني لـ ROCm؛ وقيمته None في إصداري CUDA أو CPUالتدريب على وحدات AMD GPU باستخدام PyTorch ROCm#
يعمل التدريب والتحقق والتنبؤ الأصلي على نماذج .pt على وحدات AMD GPU عبر PyTorch ROCm، بصورة مستقلة عن مسار الاستدلال باستخدام MIGraphX الموضح أدناه. ثبّت إصدار PyTorch المبني لـ ROCm كما هو موضح في التثبيت، واستخدم وسيطات الجهاز نفسها المستخدمة في أي عملية تدريب Ultralytics أخرى:
يستخدم إصدار PyTorch المبني لـ ROCm واجهات HIP داخلياً، لكنه يعيد استخدام واجهات torch.cuda عمداً، لذا يعيد torch.cuda.is_available() القيمة True، ويجري الوصول إلى وحدات AMD GPU باستخدام معرّفات CUDA القياسية. استخدم device=0 أو device=cuda:0 لوحدات AMD GPU؛ فـ rocm ليس نوع جهاز في PyTorch. راجع دلالات PyTorch HIP لمزيد من التفاصيل.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# التدريب على أول AMD GPU يتيحه PyTorch ROCm
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# التدريب على وحدتي AMD GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])يستخدم التحقق والتنبؤ بنماذج .pt اختيار الجهاز نفسه:
yolo detect val model=path/to/best.pt data=coco8.yaml device=0
yolo predict model=path/to/best.pt source=path/to/image.jpg device=0تفعّل Ultralytics AMP افتراضياً وتعطّله تلقائياً إذا كشف فحص يسبق التدريب عن اختلاف نتائج الدقة المختلطة عن الدقة الكاملة. قد يتغير سلوك AMP في ROCm باختلاف إصداري PyTorch وROCm؛ لذا إذا استمر التشغيل في إنتاج خسائر NaN أو قيمة mAP تساوي صفراً، فدرّب باستخدام amp=False:
yolo detect train data=coco8.yaml model=yolo26n.pt device=0 amp=Falseالتصدير والاستدلال باستخدام MIGraphX#
ONNX Runtime هو محرك استدلال متعدد المنصات يشغّل نموذج ONNX واحداً على العديد من الأنظمة الأساسية للأجهزة عبر موفّري التنفيذ القابلين للتركيب (EPs). يعيّن كل موفّر تنفيذ رسم ONNX البياني إلى مسرّع محدد: CUDA لوحدات NVIDIA GPU، وCoreML لشرائح Apple، وMIGraphX لوحدات AMD GPU على ROCm؛ ويُوزّع MIGraphX على هيئة الملحق onnxruntime-ep-migraphx الذي يترجم الرسم البياني إلى برنامج محسّن لوحدة GPU لديك.
يستخدم الاستدلال بـ MIGraphX تصدير ONNX القياسي. صدّر النموذج إلى ONNX (format="onnx")، وسيستخدم استدلال Ultralytics تلقائياً الواجهة الخلفية MIGraphXExecutionProvider لتشغيل نموذج ONNX على AMD GPU لديك.
الميزات الرئيسية للاستدلال باستخدام MIGraphX#
- الاختيار التلقائي لموفّر التنفيذ: على مضيف ROCm، تسجّل الواجهة الخلفية لـ ONNX الملحق وتختار
MIGraphXExecutionProviderدون الحاجة إلى تغيير الشيفرة. وإذا كان الملحق مفقوداً أو تعذّر تحميله، يعود الاستدلال إلى CPU مع إصدار تحذير. - تحسين الرسم البياني: يطبّق MIGraphX دمج العمليات وتخطيط الذاكرة واختيار النوى بما يلائم بنيات AMD GPU.
- ربط الإدخال/الإخراج دون نسخ: تُربط المدخلات والمخرجات مباشرةً بموترات GPU عبر بروتوكول DLPack، ما يجنّب عمليات النقل ذهاباً وإياباً إلى المضيف أثناء الاستدلال.
- خيارات الدقة: شغّل النموذج باستخدام FP32 أو صدّر نموذج ONNX بصيغة FP16 للاستدلال بدقة أقل.
- ملف قابل للنقل: يعمل ملف
.onnxواحد على وحدات CPU وNVIDIA GPU وAMD GPU، ما يتيح استهداف منصات متعددة من عملية تصدير واحدة. - نشر قابل لإعادة الإنتاج: يُثبّت المكدس الكامل (PyTorch ROCm وملحق MIGraphX ومكتباته) عبر
pipمن فهارس حزم wheel الخاصة بـ ROCm التابعة لـ AMD.
المهام المدعومة#
يدعم الاستدلال باستخدام MIGraphX مهام Ultralytics السبع كلها. ولا يتوفر التجزئة الدلالية وتقدير العمق إلا مع YOLO26، وهي العائلة الوحيدة التي تتضمن هذين الرأسين.
الاستخدام#
قبل التعمق في تعليمات الاستخدام، احرص على الاطلاع على مجموعة نماذج YOLO26 التي تقدمها Ultralytics. سيساعدك ذلك على اختيار النموذج الأنسب لمتطلبات مشروعك.
يدعم تنسيق ONNX أوضاع التصدير والتنبؤ والتحقق. يتطلب الاستدلال والتحقق على AMD GPU نظام ROCm مثبتاً عليه ملحق MIGraphX. صدّر نموذجك، ثم حمّل النموذج المُصدّر لتشغيل الاستدلال أو التحقق من دقته على device=0.
يُثبَّت كلٌّ من الحزمة onnxruntime-gpu والحزمة القياسية onnxruntime في وحدة Python نفسها، onnxruntime، لذا تحلّ الحزمة التي تُثبَّت أخيرًا محل الأخرى. يؤدي إلغاء تثبيت إحداهما فقط إلى تعطّل الوحدة، وقد تتسبب الإصدارات الأقدم من onnxruntime-gpu في تعطل الاستدلال باستخدام MIGraphX. إذا كان إعداد سابق قد ثبّت onnxruntime-gpu، فنفّذ pip uninstall -y onnxruntime-gpu onnxruntime، وسيعيد Ultralytics تثبيت onnxruntime القياسية عند تنفيذ استدلال ONNX التالي.
from ultralytics import YOLO
# تحميل نموذج YOLO26
model = YOLO("yolo26n.pt")
# تصدير النموذج إلى تنسيق ONNX
model.export(format="onnx") # ينشئ 'yolo26n.onnx'from ultralytics import YOLO
# تحميل نموذج ONNX المُصدَّر وتشغيل الاستدلال على GPU من AMD
model = YOLO("yolo26n.onnx")
# يُحدَّد موفّر تنفيذ MIGraphX تلقائيًا على ROCm
results = model.predict("https://ultralytics.com/images/bus.jpg", device=0)from ultralytics import YOLO
# تحميل نموذج ONNX المُصدَّر
model = YOLO("yolo26n.onnx")
# التحقق من الدقة على مجموعة بيانات COCO8 على GPU من AMD
metrics = model.val(data="coco8.yaml", device=0)وسيطات التصدير#
يعيد استدلال MIGraphX استخدام وسيطات تصدير ONNX. وفيما يلي الخيارات الأهم لنشر النماذج على GPU من AMD:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'onnx' | التنسيق المستهدف للنموذج المُصدَّر. استخدم onnx لاستدلال MIGraphX EP. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة، أو مجموعة قيم (height, width). |
quantize | int أو str | None | دقة النموذج المُصدَّر بتنسيق ONNX: 16 (FP16) للاستدلال بدقة مخفّضة؛ أما 32/غير المحدد فيعني FP32. |
dynamic | bool | False | يتيح أحجام إدخال ديناميكية. تسمح الأشكال الثابتة لـ MIGraphX بترجمة برنامج متخصص وتمكين ربط الإدخال/الإخراج دون نسخ. |
simplify | bool | True | يُبسّط مخطط النموذج باستخدام onnxslim، ما قد يحسّن الأداء والتوافق. |
opset | int | None | إصدار ONNX opset لضمان التوافق مع بيئات التشغيل المختلفة. إذا لم يُحدَّد، فسيُستخدم أحدث إصدار مدعوم. |
nms | bool، اختياري | None | حدّد المخرجات الأولية (None، الافتراضي)، أو NMS المضمّن (True)، أو الرأس الخالي من NMS (False). لا يدعم MIGraphX EP حتى الآن NMS المضمّن (True) (ROCm/AMDMIGraphX#5246. |
batch | int | 1 | حجم دفعة التصدير، أو الحد الأقصى لعدد الصور التي يعالجها النموذج المُصدَّر بالتزامن في وضع predict. |
device | str | None | الجهاز المستخدم للتصدير: GPU (device=0) أو CPU (device=cpu). |
للاطلاع على القائمة الكاملة لوسيطات التصدير، راجع تكامل ONNX وصفحة توثيق Ultralytics الخاصة بالتصدير.
النشر على وحدات GPU من AMD باستخدام MIGraphX#
يُترجم MIGraphX EP المخطط عند إنشاء الجلسة لأول مرة، ما يستغرق معظم وقت التحميل الأولي. يخزّن Ultralytics البرنامج المُترجَم مؤقتًا لكل نموذج في دليل إعدادات Ultralytics، بحيث تتخطى عمليات التحميل اللاحقة للنموذج نفسه إعادة الترجمة. تحتفظ الذاكرة المؤقتة بأحدث 8 نماذج استخدامًا وتحذف الأقدم، لذا لا يمكن أن تنمو بلا حدود. اضبط ORT_MIGRAPHX_CACHE_DIR لتغيير الموقع، واحذف دليل الذاكرة المؤقتة لفرض إعادة الترجمة بعد ترقية ROCm أو MIGraphX.
يعطّل Ultralytics نوى التفاف Winograd في MIGraphX افتراضيًا (MIGRAPHX_DISABLE_WINOGRAD=1) لتقليل وقت الترجمة الأولية لمخططات YOLO، دون تغيير ملحوظ في الاستدلال (ROCm/AMDMIGraphX#5234؛ اضبط MIGRAPHX_DISABLE_WINOGRAD=0 لإعادة تفعيلها.
لإعداد بيئة جاهزة للتشغيل، تنشئ Dockerfile-amd صورة ultralytics/ultralytics:latest-amd المثبّت فيها مسبقًا PyTorch بإصدار ROCm وMIGraphX EP. راجع استخدام وحدات GPU في دليل Docker للبدء السريع لمعرفة خيارات docker run التي تتيح لوحدات GPU من AMD العمل داخل الحاوية.
المعايير المرجعية#
أجرى فريق Ultralytics الاختبارات المعيارية لـ YOLO26 أدناه على GPU من طراز AMD Radeon 8060S (Ryzen AI Max+ PRO 395)، وقارن السرعة والدقة بين PyTorch وONNX باستخدام موفّر تنفيذ MIGraphX. يعمل التنسيقان بدقة FP32 على GPU، إذ يستخدم PyTorch تقنية ROCm ويستخدم ONNX تقنية MIGraphX.
| النموذج | التنسيق | الحالة | الحجم (MB) | metrics/mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4089 | 4.1 |
| YOLO26n | ONNX (MIGraphX) | ✅ | 9.5 | 0.4089 | 2.1 |
| YOLO26s | PyTorch | ✅ | 19.5 | 0.4850 | 7.2 |
| YOLO26s | ONNX (MIGraphX) | ✅ | 36.5 | 0.4850 | 4.7 |
| YOLO26m | PyTorch | ✅ | 42.2 | 0.5323 | 14.6 |
| YOLO26m | ONNX (MIGraphX) | ✅ | 78.2 | 0.5323 | 10.9 |
| YOLO26l | PyTorch | ✅ | 50.7 | 0.5489 | 18.5 |
| YOLO26l | ONNX (MIGraphX) | ✅ | 95.0 | 0.5489 | 15.0 |
| YOLO26x | PyTorch | ✅ | 113.2 | 0.5748 | 37.4 |
| YOLO26x | ONNX (MIGraphX) | ✅ | 212.9 | 0.5748 | 27.1 |
تم قياس الأداء باستخدام Ultralytics 8.4.165 (تقدير العمق باستخدام 8.4.172)
أُجري التحقق من صحة المعايير المذكورة أعلاه بحجم دفعة 1 على مجموعات التحقق الكاملة، بدقة 640 للكشف والتجزئة وتقدير الوضعية، و2048 للتجزئة الدلالية، و768 لتقدير العمق، و224 للتصنيف، و1024 لـ OBB. لا يشمل زمن الاستدلال المعالجة المسبقة أو اللاحقة، ولا عملية التجميع لمرة واحدة باستخدام MIGraphX.
لمحة سريعة عن الدعم#
لا يعني دعم منتج أو بيئة تشغيل واحدة من AMD دعم جميع مسرّعات AMD. يلخّص هذا الجدول الحالة الحالية في حزمة Python من Ultralytics.
| منتج AMD أو بيئة التشغيل | الدعم | الاستخدام أو الحالة |
|---|---|---|
| AMD Instinct ووحدات Radeon GPU المدعومة مع ROCm | ✅ | تدريب نماذج PyTorch الأصلية والتحقق منها وتشغيلها باستخدام device=0 أو device=cuda:0. |
| استدلال MIGraphX | ✅ | تشغيل نماذج ONNX المُصدَّرة على وحدات GPU من AMD عبر MIGraphX EP. جميع مهام YOLO26 مدعومة. |
| ROCm متعدد وحدات GPU | ✅ | استخدم device=0,1 أو device=[0, 1]؛ يتبع التنفيذ الموزّع حزمة PyTorch ROCm المثبّتة. |
| الدقة المختلطة التلقائية (AMP) في ROCm | ⚠️ | تتوفر عند اجتياز إصداري PyTorch وROCm المثبّتين اختبارات AMP لدى Ultralytics؛ استخدم amp=False إذا لم يكن التوافق متحققًا. |
| صورة Docker من AMD | ✅ | تتضمن latest-amd PyTorch بإصدار ROCm مع تثبيت MIGraphX EP مسبقًا. |
| التصدير الأصلي إلى MIGraphX | ❌ | صدّر النموذج إلى ONNX باستخدام format="onnx" وشغّله على MIGraphX EP للاستدلال على GPU من AMD. |
| Windows DirectML | ❌ | لا تتوفر في حزمة Python واجهة خلفية للتدريب أو التنبؤ باستخدام DirectML. |
| وحدة NPU في Ryzen AI | ❌ | لا يتوفر تكامل أصلي مع NPU؛ وتتولى جهات من المجتمع إدارة مسارات العمل الخارجية لـ ONNX/Vitis AI. |
| وحدات NPU في AMD Xilinx Versal AI Edge Gen 2 | ✅ | صدّر باستخدام format="xilinx"؛ وراجع دليل AMD Xilinx. |
| AMD Xilinx Zynq وKria وVersal AI Edge Gen 1 | ❌ | لا يوجد تصدير أصلي؛ استخدم مسارات عمل AMD Vitis AI الواردة في دليل AMD Xilinx. |
| وحدات CPU من AMD | ✅ CPU | استخدم device=cpu؛ فهو تنفيذ CPU قياسي، وليس واجهة خلفية لتسريع خاصة بـ AMD. |
يعتمد توفر ROCm على طراز GPU ونظام التشغيل وإصدار ROCm وبنية PyTorch المحددة. تحقّق من توافق أجهزتك في مصفوفة توافق ROCm من AMD قبل التثبيت.
الملخص#
في هذا الدليل، تعلّمت كيفية تدريب نماذج Ultralytics YOLO26 على وحدات GPU من AMD باستخدام PyTorch ROCm عبر الوسيط القياسي device=0، ثم تصديرها إلى ONNX لإجراء استدلال مُسرَّع بواسطة موفّر تنفيذ MIGraphX في ONNX Runtime. يحدّد نظام ONNX الخلفي MIGraphXExecutionProvider تلقائيًا، ويخزّن البرنامج المُترجَم مؤقتًا لتسريع عمليات التحميل اللاحقة، ويدعم جميع مهام YOLO26 دون الحاجة إلى تغيير الشيفرة.
للاطلاع على أهداف نشر أخرى، تصفّح صفحة دليل التكامل، وقارن تنسيقات التصدير باستخدام وضع الاختبار المعياري.
الأسئلة الشائعة#
نعم. ثبّت إصدار PyTorch المبني باستخدام ROCm كما هو موضح في التثبيت، ثم درّب نماذج
.ptباستخدامdevice=0، أو استخدمdevice=0,1لتدريبها على عدة وحدات GPU. يُنفَّذ التدريب باستخدام PyTorch ROCm ولا يستخدم MIGraphX أو إضافة ONNX. اطّلع على التدريب على وحدات GPU من AMD باستخدام PyTorch ROCm للاطلاع على أمثلة.صدّر النموذج إلى ONNX، ثم شغّله باستخدام
device=0على نظام ROCm. يثبّت Ultralytics إضافة MIGraphX عند تنفيذ استدلال ONNX لأول مرة:الاستخدامfrom ultralytics import YOLO # التصدير إلى ONNX model = YOLO("yolo26n.pt") model.export(format="onnx") # ينشئ 'yolo26n.onnx' # تشغيل الاستدلال على GPU من AMD (يُحدَّد MIGraphX EP تلقائيًا) onnx_model = YOLO("yolo26n.onnx") results = onnx_model.predict("https://ultralytics.com/images/bus.jpg", device=0)لا. على نظام ROCm، تكشف الواجهة الخلفية لـ ONNX في Ultralytics عن HIP، وتثبّت إضافة
onnxruntime-ep-migraphxوتسجّلها، ثم تحددMIGraphXExecutionProviderتلقائيًا. إذا تعذّر تثبيت الإضافة أو تحميلها، على سبيل المثال عند استخدام إصدار Python أقدم من 3.11 أو على ARM64، يعود الاستدلال إلى CPU مع إصدار تحذير.يترجم MIGraphX مخطط ONNX إلى برنامج محسّن عند إنشاء الجلسة لأول مرة، ما يستغرق معظم وقت التحميل الأولي. يخزّن Ultralytics البرنامج المُترجَم مؤقتًا، لذا تتخطى عمليات التحميل اللاحقة للنموذج نفسه إعادة الترجمة. راجع ملاحظة ذاكرة التخزين المؤقت للبرنامج المُترجَم لمعرفة موقعها وحدّ حجمها.
من المرجح أن حزمة PyTorch المثبّتة هي إصدار CPU أو CUDA وليست إصدار ROCm، أو أن GPU غير مدعوم ضمن حزمة ROCm النشطة. أعد تثبيت PyTorch من فهرس عجلات ROCm الخاص بـ AMD كما هو موضح في التثبيت، وتحقق من أن
torch.version.hipليسNone، وتأكد من توافق GPU ضمن مصفوفة توافق ROCm الخاصة بـ AMD. تأكد أيضًا من إمكانية وصول المستخدم إلى/dev/kfdو/dev/dri، ويكون ذلك عادةً بالانضمام إلى مجموعتيvideoوrender.هذا متوقع. يعيد PyTorch ROCm استخدام واجهة
torch.cudaوسلاسل الأجهزة المتوافقة مع CUDA عمدًا لضمان التوافق مع Python. استخدمdevice=0أوdevice=cuda:0؛ إذ يظل النموذج ينفّذ عبر HIP وROCm على GPU من AMD.ليس عبر حزمة Python. لا يتضمن DirectML خلفية للتدريب أو التنبؤ، ولا تُتاح وحدات NPU في Ryzen AI عبر PyTorch ROCm. قد تصدّر مسارات عمل المجتمع النماذج إلى ONNX وتشغّلها باستخدام أدوات Ryzen AI أو Vitis AI الخارجية من AMD، لكن هذه بيئات التشغيل خارج مسار التنفيذ الذي تدعمه Ultralytics. لوحدات NPU المضمنة في AMD Xilinx Versal AI Edge Series Gen 2، صدّر باستخدام
format="xilinx"؛ أما لأجهزة Zynq وKria والجيل الأول من Versal AI Edge، فراجع دليل AMD Xilinx.مرّر فهرس GPU مباشرةً، مثل
device=1لوحدة GPU الثانية، سواءً مع PyTorch أو لاستدلال MIGraphX EP. لتقييد عملية أو حاوية بوحدات GPU محددة، عيّنHIP_VISIBLE_DEVICES(أوROCR_VISIBLE_DEVICESللحاويات)، مثلًاHIP_VISIBLE_DEVICES=2؛ وعندئذٍ يُعاد ترقيم وحدات GPU الظاهرة ابتداءً منdevice=0.