دليل البدء السريع: NVIDIA Jetson مع Ultralytics YOLO26#
يوفّر هذا الدليل الشامل شرحًا تفصيليًا خطوة بخطوة لنشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson. بالإضافة إلى ذلك، يعرض معايير أداء لتوضيح إمكانات YOLO26 على هذه الأجهزة الصغيرة والقوية.
لقد حدّثنا هذا الدليل بأحدث NVIDIA Jetson AGX Thor Developer Kit، الذي يوفّر ما يصل إلى 2070 تيرافلوب FP4 من قدرة حوسبة الذكاء الاصطناعي وذاكرة بسعة 128 GB، مع إمكانية ضبط استهلاك الطاقة بين 40 W و130 W. ويوفّر قدرة حوسبة للذكاء الاصطناعي أعلى بأكثر من 7.5 مرات من NVIDIA Jetson AGX Orin، مع كفاءة طاقة أفضل بمقدار 3.5 مرات لتشغيل أشهر نماذج الذكاء الاصطناعي بسلاسة.
Watch: How to use Ultralytics YOLO26 on NVIDIA Jetson Devices

اختُبر هذا الدليل باستخدام NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000) وNVIDIA Jetson AGX Orin Developer Kit (64GB) اللذين يعملان بأحدث إصدار مستقر من JetPack 7.2، وNVIDIA Jetson Orin Nano Super Developer Kit الذي يعمل بإصدار JetPack من JP6.1، وSeeed Studio reComputer J4012 المستند إلى NVIDIA Jetson Orin NX 16GB والذي يعمل بإصدار JetPack من JP6.0/ إصدار JetPack من JP5.1.3، وSeeed Studio reComputer J1020 v2 المستند إلى NVIDIA Jetson Nano 4GB والذي يعمل بإصدار JetPack من JP4.6.1. ومن المتوقع أن يعمل عبر مجموعة أجهزة NVIDIA Jetson بأكملها، بما في ذلك الأجهزة الأحدث والقديمة.
ما هو NVIDIA Jetson؟#
NVIDIA Jetson هي سلسلة من لوحات الحوسبة المضمّنة المصممة لتوفير حوسبة متسارعة للذكاء الاصطناعي (AI) على الأجهزة الطرفية. صُممت هذه الأجهزة المدمجة والقوية حول بنية GPU من NVIDIA، ويمكنها تشغيل خوارزميات الذكاء الاصطناعي المعقدة ونماذج التعلم العميق مباشرةً على الجهاز، من دون الاعتماد على موارد الحوسبة السحابية. تُستخدم لوحات Jetson غالبًا في الروبوتات والمركبات ذاتية القيادة والأتمتة الصناعية وغيرها من التطبيقات التي يلزم فيها تنفيذ استدلال الذكاء الاصطناعي محليًا بزمن استجابة منخفض وكفاءة عالية. بالإضافة إلى ذلك، تستند هذه اللوحات إلى بنية ARM64 وتعمل باستهلاك طاقة أقل مقارنةً بأجهزة حوسبة GPU التقليدية.
مقارنة سلسلة NVIDIA Jetson#
تُعد NVIDIA Jetson AGX Thor أحدث إصدار من عائلة NVIDIA Jetson، وهي تستند إلى بنية NVIDIA Blackwell التي توفر أداءً محسّنًا بدرجة كبيرة للذكاء الاصطناعي مقارنةً بالأجيال السابقة. يقارن الجدول أدناه بعض أجهزة Jetson ضمن المنظومة.
| Jetson AGX Thor(T5000) | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano Super | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano | |
|---|---|---|---|---|---|---|---|
| أداء الذكاء الاصطناعي | 2070 TFLOPS | 275 TOPS | 100 TOPS | 67 TOPS | 32 TOPS | 21 TOPS | 472 GFLOPS |
| GPU | GPU ببنية NVIDIA Blackwell، مزود بـ2560 نواة و96 نواة Tensor | GPU ببنية NVIDIA Ampere، مزود بـ2048 نواة و64 نواة Tensor | GPU ببنية NVIDIA Ampere، مزود بـ1024 نواة و32 نواة Tensor | GPU ببنية NVIDIA Ampere، مزود بـ1024 نواة و32 نواة Tensor | GPU ببنية NVIDIA Volta، مزود بـ512 نواة و64 نواة Tensor | GPU ببنية NVIDIA Volta™، مزود بـ384 نواة و48 نواة Tensor | GPU ببنية NVIDIA Maxwell™، مزود بـ128 نواة |
| الحد الأقصى لتردد GPU | 1.57 GHz | 1.3 GHz | 918 MHz | 1020 MHz | 1377 MHz | 1100 MHz | 921MHz |
| CPU | CPU Arm® Neoverse®-V3AE 64-bit بـ14 نواة، و1MB L2 + 16MB L3 | CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit بـ12 نواة، و3MB L2 + 6MB L3 | CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit بـ8 نوى، و2MB L2 + 4MB L3 | CPU Arm® Cortex®-A78AE v8.2 64-bit بـ6 أنوية، و1.5MB L2 + 4MB L3 | CPU NVIDIA Carmel Arm®v8.2 64-bit بـ8 أنوية، و8MB L2 + 4MB L3 | CPU NVIDIA Carmel Arm®v8.2 64-bit بـ6 أنوية، و6MB L2 + 4MB L3 | معالج Quad-Core Arm® Cortex®-A57 MPCore |
| الحد الأقصى لتردد CPU | 2.6 GHz | 2.2 GHz | 2.0 GHz | 1.7 GHz | 2.2 GHz | 1.9 GHz | 1.43GHz |
| الذاكرة | 128GB LPDDR5X 256-bit بسرعة 273GB/s | 64GB LPDDR5 256-bit بسرعة 204.8GB/s | 16GB LPDDR5 128-bit بسرعة 102.4GB/s | 8GB LPDDR5 128-bit بسرعة 102 GB/s | 32GB LPDDR4x 256-bit بسرعة 136.5GB/s | 8GB LPDDR4x 128-bit بسرعة 59.7GB/s | 4GB LPDDR4 64-bit بسرعة 25.6GB/s |
للاطلاع على جدول مقارنة أكثر تفصيلًا، يُرجى زيارة قسم Compare Specifications في صفحة NVIDIA Jetson الرسمية.
ما هو NVIDIA JetPack؟#
يُعد NVIDIA JetPack SDK، الذي يشغّل وحدات Jetson، الحل الأكثر شمولًا؛ إذ يوفّر بيئة تطوير كاملة لبناء تطبيقات ذكاء اصطناعي متسارعة من البداية إلى النهاية، ويختصر الوقت اللازم للوصول إلى السوق. يتضمن JetPack نظام Jetson Linux مع محمّل الإقلاع ونواة Linux وبيئة سطح مكتب Ubuntu ومجموعة كاملة من المكتبات لتسريع حوسبة GPU والوسائط المتعددة والرسومات والرؤية الحاسوبية. كما يتضمن أمثلة ووثائق وأدوات للمطور لكل من الحاسوب المضيف وحزمة التطوير، ويدعم SDKs ذات المستوى الأعلى مثل DeepStream لتحليلات الفيديو المتدفق، وIsaac للروبوتات، وRiva للذكاء الاصطناعي الحواري.
تثبيت JetPack على NVIDIA Jetson#
تتمثل الخطوة الأولى بعد اقتناء جهاز NVIDIA Jetson في تثبيت NVIDIA JetPack على الجهاز. توجد عدة طرق مختلفة لتثبيت NVIDIA JetPack على أجهزة NVIDIA Jetson.
- بالنسبة إلى JetPack 7.2 على حزمة تطوير Jetson AGX Thor أو AGX Orin أو Orin Nano الرسمية، نزّل ملف Jetson ISO الموحد، واكتبه على محرك أقراص USB محمول، واتبع دليل البدء السريع الخاص بالجهاز لكل من AGX Thor أو AGX Orin أو Orin Nano. بدءًا من JetPack 7.2، لم يعد Orin Nano يستخدم صورة SD قابلة للتنزيل؛ إذ يثبّت USB ISO نظام Jetson Linux على بطاقة microSD أو وحدة تخزين NVMe SSD الخاصة بالجهاز.
- إذا كنت تستخدم JetPack 6 عمدًا على حزمة تطوير Jetson Orin Nano، فاتبع تعليمات NVIDIA لتحديث JetPack 6.x وبطاقة SD.
- إذا كنت تمتلك أي حزمة تطوير NVIDIA أخرى، فيمكنك تثبيت JetPack على الجهاز باستخدام SDK Manager.
- إذا كنت تمتلك جهاز Seeed Studio reComputer J4012، فيمكنك تثبيت JetPack على SSD المرفق، وإذا كنت تمتلك جهاز Seeed Studio reComputer J1020 v2، فيمكنك تثبيت JetPack على eMMC/ SSD.
- إذا كنت تمتلك أي جهاز آخر من جهة خارجية يعمل بوحدة NVIDIA Jetson، فمن المستحسن اتباع إجراءات التثبيت عبر سطر الأوامر.
بالنسبة إلى الطرق 1 و4 و5 أعلاه، بعد تثبيت النظام وإقلاع الجهاز، يُرجى إدخال "sudo apt update && sudo apt install nvidia-jetpack -y" في طرفية الجهاز لتثبيت جميع مكونات JetPack المتبقية اللازمة.
دعم JetPack حسب جهاز Jetson#
يوضح الجدول أدناه إصدارات NVIDIA JetPack التي تدعمها أجهزة NVIDIA Jetson المختلفة.
| JetPack 4 | JetPack 5 | JetPack 6 | JetPack 7 | |
|---|---|---|---|---|
| Jetson Nano | ✅ | ❌ | ❌ | ❌ |
| Jetson TX2 | ✅ | ❌ | ❌ | ❌ |
| Jetson Xavier NX | ✅ | ✅ | ❌ | ❌ |
| Jetson AGX Xavier | ✅ | ✅ | ❌ | ❌ |
| Jetson AGX Orin | ❌ | ✅ | ✅ | ✅ |
| Jetson Orin NX | ❌ | ✅ | ✅ | ✅ |
| Jetson Orin Nano | ❌ | ✅ | ✅ | ✅ |
| Jetson AGX Thor | ❌ | ❌ | ❌ | ✅ |
البدء السريع باستخدام Docker#
أسرع طريقة للبدء باستخدام Ultralytics YOLO26 على NVIDIA Jetson هي تشغيله باستخدام صور Docker مُنشأة مسبقًا والمخصصة لـJetson. راجع الجدول أعلاه واختر إصدار JetPack وفقًا لجهاز Jetson الذي تملكه.
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $tتستخدم صورة latest-nvidia-arm64 NVIDIA PyTorch 26.08، بما في ذلك CUDA 13.4 و TensorRT 11.2. تدرج NVIDIA إصدار JetPack 7.1 لـ PyTorch في جدول التوافق الخاص بها، ولكن TensorRT 11.2.1 لا يدعم JetPack، بما في ذلك Thor. استخدم هذه الصورة فقط لأحمال عمل PyTorch على مضيف مدعوم. بالنسبة لتصديرات Jetson TensorRT، استخدم التثبيت الأصلي أدناه مع وقت تشغيل TensorRT 10.x المدعوم من إطلاق JetPack الخاص بك. يتطلب JetPack 7.2 على Thor أو Orin التحقق من الحاوية بشكل منفصل. أعد بناء المحركات لوحدة المعالجة الرسومية المستهدفة وإصدار TensorRT.
بالنسبة لصور JetPack 4 و 5 و 6، استمر في الانتقال إلى Use TensorRT on NVIDIA Jetson. صورة JetPack 7.1 أعلاه مخصصة لأحمال عمل PyTorch فقط.
البدء بالتثبيت الأصلي#
لإجراء تثبيت أصلي من دون Docker، يُرجى الرجوع إلى الخطوات أدناه.
التشغيل على JetPack 7.2#
تثبيت حزمة Ultralytics#
سنثبت هنا حزمة Ultralytics على Jetson. تُثبّت تبعيات التصدير تلقائيًا في المرة الأولى التي تصدّر فيها نموذجًا، لذا لا نحتاج هنا إلا إلى الحزمة الأساسية. سنركّز أساسًا على عمليات التصدير إلى NVIDIA TensorRT، لأن TensorRT يضمن الحصول على أقصى أداء ممكن من أجهزة Jetson.
-
تحديث قائمة الحزم وتثبيت pip والترقية إلى أحدث إصدار
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip
ultralyticspip install ultralytics -
إعادة تشغيل الجهاز
sudo reboot
تثبيت PyTorch وTorchvision#
سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch وTorchvision. إلا أن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين للتشغيل على أجهزة JetPack 7.2 مع CUDA 13. لذلك، نحتاج إلى تثبيتهما يدويًا.
تثبيت torch وtorchvision وفقًا لـJP7.2
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130تثبيت onnxruntime-gpu#
استخدم عجلة ONNX Runtime GPU المتوافقة مع إصدارات JetPack و Python و CUDA الخاصة بك. تتضمن إصدارات PyPI الحالية عجلات ARM64، لكنها لا تحل محل الحزم الخاصة بالجيهاز لكل إصدار JetPack.
سننزّل هنا onnxruntime-gpu 1.24.0 ونثبّته مع دعم Python3.12.
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whlالتشغيل على JetPack 6.1#
تثبيت حزمة Ultralytics#
سنثبت هنا حزمة Ultralytics على Jetson. تُثبّت تبعيات التصدير تلقائيًا في المرة الأولى التي تصدّر فيها نموذجًا، لذا لا نحتاج هنا إلا إلى الحزمة الأساسية. سنركّز أساسًا على عمليات التصدير إلى NVIDIA TensorRT، لأن TensorRT يضمن الحصول على أقصى أداء ممكن من أجهزة Jetson.
-
تحديث قائمة الحزم وتثبيت pip والترقية إلى أحدث إصدار
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip
ultralyticspip install ultralytics -
إعادة تشغيل الجهاز
sudo reboot
تثبيت PyTorch وTorchvision#
سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch وTorchvision. إلا أن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson المستندة إلى بنية ARM64. لذلك، نحتاج إلى تثبيت ملف PyTorch pip wheel مُنشأ مسبقًا يدويًا، وتجميع Torchvision من المصدر أو تثبيته منه.
تثبيت torch 2.10.0 وtorchvision 0.25.0 وفقًا لـJP6.1
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.10.0-cp310-cp310-linux_aarch64.whl
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.25.0-cp310-cp310-linux_aarch64.whlزُر صفحة PyTorch for Jetson للوصول إلى جميع إصدارات PyTorch المختلفة لإصدارات JetPack المختلفة. وللاطلاع على قائمة أكثر تفصيلًا بتوافق PyTorch وTorchvision، زُر صفحة توافق PyTorch وTorchvision.
ثبّت cuDSS لإصلاح مشكلة تبعية مع torch 2.10.0
wget https://developer.download.nvidia.com/compute/cudss/0.7.1/local_installers/cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo dpkg -i cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo cp /var/cudss-local-tegra-repo-ubuntu2204-0.7.1/cudss-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudssتثبيت onnxruntime-gpu#
استخدم عجلة ONNX Runtime GPU المتوافقة مع إصدارات JetPack و Python و CUDA الخاصة بك. تتضمن إصدارات PyPI الحالية عجلات ARM64، لكنها لا تحل محل الحزم الخاصة بالجيهاز لكل إصدار JetPack.
يمكنك العثور على جميع حزم onnxruntime-gpu المتاحة—مرتبة حسب إصدار JetPack وإصدار Python وتفاصيل التوافق الأخرى—في مصفوفة توافق Jetson Zoo ONNX Runtime.
بالنسبة إلى JetPack 6 مع دعم Python 3.10، يمكنك تثبيت onnxruntime-gpu 1.23.0:
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.23.0-cp310-cp310-linux_aarch64.whlبدلًا من ذلك، بالنسبة إلى onnxruntime-gpu 1.20.0:
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.20.0-cp310-cp310-linux_aarch64.whlالتشغيل على JetPack 5.1.2#
تثبيت حزمة Ultralytics#
سنثبت هنا حزمة Ultralytics على Jetson. تُثبّت تبعيات التصدير تلقائيًا في المرة الأولى التي تصدّر فيها نموذجًا، لذا لا نحتاج هنا إلا إلى الحزمة الأساسية. سنركّز أساسًا على عمليات التصدير إلى NVIDIA TensorRT، لأن TensorRT يضمن الحصول على أقصى أداء ممكن من أجهزة Jetson.
-
تحديث قائمة الحزم وتثبيت pip والترقية إلى أحدث إصدار
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip
ultralyticspip install ultralytics -
إعادة تشغيل الجهاز
sudo reboot
تثبيت PyTorch وTorchvision#
سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch وTorchvision. إلا أن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson المستندة إلى بنية ARM64. لذلك، نحتاج إلى تثبيت ملف PyTorch pip wheel مُنشأ مسبقًا يدويًا، وتجميع Torchvision من المصدر أو تثبيته منه.
-
إلغاء تثبيت PyTorch وTorchvision المثبتين حاليًا
pip uninstall torch torchvision -
تثبيت
torch 2.1.0وtorchvision 0.16.2وفقًا لـJP5.1.2pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl
زُر صفحة PyTorch for Jetson للوصول إلى جميع إصدارات PyTorch المختلفة لإصدارات JetPack المختلفة. وللاطلاع على قائمة أكثر تفصيلًا بتوافق PyTorch وTorchvision، زُر صفحة توافق PyTorch وTorchvision.
تثبيت onnxruntime-gpu#
استخدم عجلة ONNX Runtime GPU المتوافقة مع إصدارات JetPack و Python و CUDA الخاصة بك. تتضمن إصدارات PyPI الحالية عجلات ARM64، لكنها لا تحل محل الحزم الخاصة بالجيهاز لكل إصدار JetPack.
يمكنك العثور على جميع حزم onnxruntime-gpu المتاحة—مرتبة حسب إصدار JetPack وإصدار Python وتفاصيل التوافق الأخرى—في مصفوفة توافق Jetson Zoo ONNX Runtime. سننزّل هنا onnxruntime-gpu 1.17.0 ونثبّته مع دعم Python3.8.
wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whlستعيد onnxruntime-gpu إصدار NumPy تلقائيًا إلى أحدث إصدار. لذلك نحتاج إلى إعادة تثبيت NumPy بالإصدار 1.23.5 لإصلاح مشكلة، وذلك بتنفيذ:
pip install numpy==1.23.5
استخدام TensorRT على NVIDIA Jetson#
من بين جميع تنسيقات تصصدير النماذج المدعومة بواسطة Ultralytics، يقدم TensorRT أعلى أداء للاستدلال على أجهزة NVIDIA Jetson، مما يجعله توصيتنا الأولى لعمليات نشر Jetson. قبل التصدير، قم بتثبيت ارتباطات TensorRT Python المقدمة لإصدار JetPack الخاص بك وتحقق منها باستخدام python3 -c "import tensorrt; print(tensorrt.__version__)". احتفظ بوقت تشغيل TensorRT 10.x المدعوم على JetPack 6/7؛ ولا تستبدله بـ TensorRT 11.2.1. للحصول على تعليمات الإعداد والاستخدام المتقدم، راجع دليل تكامل TensorRT المخصص الخاص بنا.
يمكنك أيضًا التصدير من المتصفح من دون إعداد بيئة البناء محليًا. في علامة تبويب تصدير النموذج في Ultralytics Platform، حدّد TensorRT والهدف المقصود من Jetson. يجري التحقق من خيارات Thor على أجهزة Thor فعلية. وتنتج خيارات Orin الستة حاليًا محركات مرشحة مبنية على AGX-Orin؛ لذا تحقّق منها على SKU Orin المقصود قبل النشر.
ينشئ TensorRT ملفًا تعريفيًا للمحرك ويضبطه على GPU المستخدم في عملية البناء. طابِق بنية GPU الهدف وبيئة تشغيل TensorRT/CUDA، وتحقّق من كل محرك تم تنزيله على جهاز النشر. لا تضمن وحدات Orin SKU ذات البنية نفسها قابلية النقل تلقائيًا، وينبغي استخدام الجهاز الهدف لمعايرة INT8 للحصول على أفضل النتائج.
تحويل النموذج إلى TensorRT وتشغيل الاستدلال#
يُحوَّل نموذج YOLO26n بتنسيق PyTorch إلى TensorRT لتشغيل الاستدلال باستخدام النموذج المُصدَّر.
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to TensorRT
model.export(format="engine") # creates 'yolo26n.engine'
# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")
# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")زُر صفحة التصدير للوصول إلى وسيطات إضافية عند تصدير النماذج إلى تنسيقات نماذج مختلفة
استخدام مُسرّع التعلم العميق من NVIDIA (DLA)#
مُسرّع التعلم العميق من NVIDIA (DLA) هو مكوّن عتادي متخصص مدمج في أجهزة NVIDIA Jetson، يعمل على تحسين استدلال التعلم العميق لتحقيق كفاءة الطاقة والأداء. ومن خلال إسناد المهام من GPU (مما يحرره للعمليات الأكثر كثافة)، يتيح DLA تشغيل النماذج باستهلاك طاقة أقل مع الحفاظ على معدل نقل مرتفع، ما يجعله مثاليًا للأنظمة المضمّنة وتطبيقات الذكاء الاصطناعي في الوقت الفعلي.
تدرج NVIDIA إصدار TensorRT 10.7 باعتباره الإصدار الأخير مع دعم DLA؛ ولا تدعم إصدارات TensorRT 11.0 و 11.1 و 11.2 تقنية DLA. استخدم إصدار TensorRT الداعم لـ DLA المدعوم من إصدار JetPack الخاص بك. لا يدعم TensorRT 11.2.1 إصدار JetPack، بما في ذلك التصديرات الخاصة بوحدة المعالجة الرسومية فقط.
أجهزة Jetson التالية مجهزة بعتاد DLA:
| جهاز Jetson | أنوية DLA | التردد الأقصى لـ DLA |
|---|---|---|
| سلسلة Jetson AGX Orin | 2 | 1.6 GHz |
| Jetson Orin NX 16GB | 2 | 614 MHz |
| Jetson Orin NX 8GB | 1 | 614 MHz |
| سلسلة Jetson AGX Xavier | 2 | 1.4 GHz |
| سلسلة Jetson Xavier NX | 2 | 1.1 GHz |
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to TensorRT with DLA enabled (only works with FP16 or INT8)
model.export(format="engine", device="dla:0", quantize=16) # dla:0 or dla:1 corresponds to the DLA cores
# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")
# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")عند استخدام صادرات DLA، قد لا تكون بعض الطبقات مدعومة للتشغيل على DLA، وستنتقل إلى GPU للتنفيذ. وقد يؤدي هذا الانتقال إلى زمن استجابة إضافي ويؤثر في أداء الاستدلال الإجمالي. لذلك، لم يُصمَّم DLA أساسًا لتقليل زمن استجابة الاستدلال مقارنةً بتشغيل TensorRT بالكامل على GPU. بل يتمثل غرضه الأساسي في زيادة معدل النقل وتحسين كفاءة الطاقة.
معايير أداء YOLO26 على NVIDIA Jetson#
تم إجراء معايير أداء YOLO26 بواسطة فريق Ultralytics على 11 تنسيقاً مختلفاً للنماذج تقيس السرعة والدقة: PyTorch، وTorchScript، وONNX، وOpenVINO، وTensorRT، وTF SavedModel، وTF GraphDef، وTF Lite، وMNN، وNCNN، وExecuTorch. أُجريت معايير الأداء على NVIDIA Jetson AGX Thor Developer Kit، وNVIDIA Jetson AGX Orin Developer Kit (64GB)، وNVIDIA Jetson Orin Nano Super Developer Kit، وجهاز Seeed Studio reComputer J4012 المدعوم بمعالج Jetson Orin NX 16GB بدقة FP32 الدقة مع حجم صورة إدخال افتراضي يبلغ 640.
مخططات المقارنة#
رغم أن جميع صادرات النماذج تعمل على NVIDIA Jetson، فقد أدرجنا PyTorch, TorchScript, TensorRT فقط في مخطط المقارنة أدناه لأنها تستفيد من GPU في Jetson ومضمونة لإنتاج أفضل النتائج. أما جميع الصادرات الأخرى فتستخدم CPU فقط، وأداؤها ليس بجودة التنسيقات الثلاثة المذكورة أعلاه. يمكنك العثور على معايير جميع الصادرات في القسم التالي لهذا المخطط.
NVIDIA Jetson AGX Thor Developer Kit#
NVIDIA Jetson AGX Orin Developer Kit (64GB)#
NVIDIA Jetson Orin Nano Super Developer Kit#
NVIDIA Jetson Orin NX 16GB#
جداول المقارنة التفصيلية#
يمثل الجدول أدناه نتائج معايير الأداء لخمسة نماذج مختلفة (YOLO26n، وYOLO26s، وYOLO26m، وYOLO26l، وYOLO26x) عبر 11 تنسيقاً مختلفاً (PyTorch، وTorchScript، وONNX، وOpenVINO، وTensorRT، وTF SavedModel، وTF GraphDef، وTF Lite، وMNN، وNCNN، وExecuTorch)، مما يمنحنا الحالة، والحجم، ومقياس mAP50-95(B)، ووقت الاستدلال لكل مجموعة.
NVIDIA Jetson AGX Thor Developer Kit#
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | زمن الاستدلال (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 7.39 |
| TorchScript | ✅ | 9.8 | 0.4789 | 4.21 |
| ONNX | ✅ | 9.5 | 0.4767 | 6.58 |
| OpenVINO | ✅ | 10.1 | 0.4794 | 17.50 |
| TensorRT (FP32) | ✅ | 13.9 | 0.4791 | 1.90 |
| TensorRT (FP16) | ✅ | 7.6 | 0.4797 | 1.39 |
| TensorRT (INT8) | ✅ | 6.5 | 0.4273 | 1.52 |
| TF SavedModel | ✅ | 25.7 | 0.4764 | 47.24 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 45.98 |
| TF Lite | ✅ | 9.9 | 0.4764 | 182.04 |
| MNN | ✅ | 9.4 | 0.4784 | 21.83 |
تم إجراء المعايير باستخدام Ultralytics 8.4.7
لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.
NVIDIA Jetson AGX Orin Developer Kit (64GB)#
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | زمن الاستدلال (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4790 | 11.58 |
| TorchScript | ✅ | 9.8 | 0.4770 | 4.60 |
| ONNX | ✅ | 9.5 | 0.4770 | 9.87 |
| OpenVINO | ✅ | 9.6 | 0.4820 | 28.80 |
| TensorRT (FP32) | ✅ | 11.5 | 0.0450 | 4.18 |
| TensorRT (FP16) | ✅ | 7.9 | 0.0450 | 2.62 |
| TensorRT (INT8) | ✅ | 5.4 | 0.4640 | 2.30 |
| TF SavedModel | ✅ | 24.6 | 0.4760 | 71.10 |
| TF GraphDef | ✅ | 9.5 | 0.4760 | 70.02 |
| TF Lite | ✅ | 9.9 | 0.4760 | 227.94 |
| MNN | ✅ | 9.4 | 0.4760 | 32.46 |
| NCNN | ✅ | 9.3 | 0.4810 | 29.93 |
تم إجراء المعايير باستخدام Ultralytics 8.4.32
لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.
NVIDIA Jetson Orin Nano Super Developer Kit#
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | زمن الاستدلال (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4790 | 15.60 |
| TorchScript | ✅ | 9.8 | 0.4770 | 12.60 |
| ONNX | ✅ | 9.5 | 0.4760 | 15.76 |
| OpenVINO | ✅ | 9.6 | 0.4820 | 56.23 |
| TensorRT (FP32) | ✅ | 11.3 | 0.4770 | 7.53 |
| TensorRT (FP16) | ✅ | 8.1 | 0.4800 | 4.57 |
| TensorRT (INT8) | ✅ | 5.3 | 0.4490 | 3.80 |
| TF SavedModel | ✅ | 24.6 | 0.4760 | 118.33 |
| TF GraphDef | ✅ | 9.5 | 0.4760 | 116.30 |
| TF Lite | ✅ | 9.9 | 0.4760 | 286.00 |
| MNN | ✅ | 9.4 | 0.4760 | 68.77 |
| NCNN | ✅ | 9.3 | 0.4810 | 47.50 |
تم إجراء المعايير باستخدام Ultralytics 8.4.33
لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.
NVIDIA Jetson Orin NX 16GB#
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | زمن الاستدلال (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4799 | 13.90 |
| TorchScript | ✅ | 9.8 | 0.4787 | 11.60 |
| ONNX | ✅ | 9.5 | 0.4763 | 14.18 |
| OpenVINO | ✅ | 9.6 | 0.4819 | 40.19 |
| TensorRT (FP32) | ✅ | 11.4 | 0.4770 | 7.01 |
| TensorRT (FP16) | ✅ | 8.0 | 0.4789 | 4.13 |
| TensorRT (INT8) | ✅ | 5.5 | 0.4489 | 3.49 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 92.34 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 92.06 |
| TF Lite | ✅ | 9.9 | 0.4764 | 254.43 |
| MNN | ✅ | 9.4 | 0.4760 | 48.55 |
| NCNN | ✅ | 9.3 | 0.4805 | 34.31 |
تم إجراء المعايير باستخدام Ultralytics 8.4.33
لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.
استكشف المزيد من جهود وضع المعايير التي أجرتها Seeed Studio على إصدارات مختلفة من أجهزة NVIDIA Jetson.
إعادة إنتاج نتائجنا#
لإعادة إنتاج معايير Ultralytics المذكورة أعلاه على جميع التنسيقات المُصدَّرة، شغّل هذا الرمز:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)لاحظ أن نتائج المعايير قد تختلف استنادًا إلى تكوين الأجهزة والبرامج الدقيق للنظام، بالإضافة إلى حمل النظام الحالي وقت إجراء المعايير. وللحصول على النتائج الأكثر موثوقية، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور، مثل data='coco.yaml' (5000 صورة للتحقق).
أفضل الممارسات عند استخدام NVIDIA Jetson#
عند استخدام NVIDIA Jetson، هناك بعض أفضل الممارسات التي ينبغي اتباعها لتمكين أقصى أداء على NVIDIA Jetson الذي يشغّل YOLO26.
-
تمكين وضع الطاقة القصوى
يضمن تمكين وضع الطاقة القصوى على Jetson تشغيل جميع أنوية CPU وGPU.
sudo nvpmodel -m 0 -
تمكين ساعات Jetson
يضمن تمكين ساعات Jetson تشغيل جميع أنوية CPU وGPU عند ترددها الأقصى.
sudo jetson_clocks -
تثبيت تطبيق Jetson Stats
يمكننا استخدام تطبيق jetson stats لمراقبة درجات حرارة مكوّنات النظام والتحقق من تفاصيل أخرى للنظام، مثل عرض استخدام CPU وGPU وRAM، وتغيير أوضاع الطاقة، وضبط الساعات القصوى، والتحقق من معلومات JetPack
sudo apt update sudo pip install jetson-stats sudo reboot jtop
نصائح لتحسين الذاكرة في NVIDIA Jetson#
غالبًا ما تكون الذاكرة المتاحة عامل التقييد في أجهزة Jetson، ولا سيما في الطُرز ذات الذاكرة الأقل مثل Jetson Orin Nano (8 GB) أو Orin NX 8 GB. التغييرات الواردة أدناه عملية ومنخفضة المخاطر، ويمكنها مجتمعةً تحرير عدة مئات من الميغابايتات والسماح بتشغيل نماذج YOLO أكبر أو دعم أعباء عمل متوازية إضافية. لمعالجة شاملة، راجع مدونة NVIDIA حول تحقيق أقصى كفاءة للذاكرة على Jetson.
1. التبديل إلى الإقلاع دون واجهة رسومية#
إذا كان Jetson متصلًا عبر SSH أو يعمل كجهاز إنتاجي دون توصيل شاشة، فإن إزالة بيئة سطح المكتب وخادم العرض يمكن أن تستعيد ما يصل إلى 865 MB من RAM:
sudo systemctl set-default multi-user.target
sudo rebootلاستعادة سطح المكتب لاحقًا:
sudo systemctl set-default graphical.target
sudo reboot2. تعطيل خدمات النظام غير المستخدمة#
تستهلك خدمات الخلفية غير الأساسية (Bluetooth ومديرو الاتصال وخدمات العتاد غير المستخدمة) نحو 32 MB مجتمعةً. اعرض الخدمات النشطة وعطّل أي خدمة لا يتطلبها النشر لديك:
# List running services
systemctl list-units --type=service --state=running
# Disable a service
sudo systemctl disable SERVICE_NAME3. تحديد استخدام الذاكرة#
قبل التحسين، حدّد العمليات التي تستهلك RAM فعليًا. يرتّب procrank العمليات حسب PSS (حجم المجموعة المتناسب)، وهو ما يعكس البصمة الحقيقية لذاكرة كل عملية بدقة أكبر من RSS (حجم المجموعة المقيمة، أي إجمالي صفحات RAM الفعلية المعينة لعملية ما، بما في ذلك الصفحات المشتركة مع العمليات الأخرى):
git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrankلعرض تخصيصات GPU وNvMap (مسار CUDA/الفيديو) لكل عملية:
sudo cat /sys/kernel/debug/nvmap/iovmm/clients4. تشغيل الاستدلال دون شاشة في بيئة الإنتاج#
بالنسبة إلى مسارات الاستدلال التي لا تتطلب معاينة مباشرة، يمكن أن يؤدي تعطيل مكوّنات العرض (Tiler وOSD وDisplaySink) إلى توفير 200+ MB من مسار المعالجة وحده. مع Ultralytics YOLO، أوقف العارض واكتب النتائج إلى القرص بدلًا من ذلك:
from ultralytics import YOLO
model = YOLO("yolo26n.engine")
# show=False prevents any display window; save=True writes annotated output to disk
results = model.predict(source="video.mp4", show=False, save=True)الأثر التراكمي#
| التحسين | الذاكرة المُوفَّرة تقريبًا |
|---|---|
| تعطيل واجهة المستخدم الرسومية لسطح المكتب | ~865 MB |
| تعطيل خدمات نظام التشغيل غير المستخدمة | ~32 MB |
| مسار استدلال دون واجهة عرض (بدون شاشة) | ~200+ MB |
| الإجمالي (مكاسب سهلة) | ~1 GB+ |
يكتسب جمع هذه التغييرات أهمية خاصة عند استهداف نماذج TensorRT INT8 على الأجهزة محدودة الذاكرة — إذ قد يكون الفارق بين ملاءمة نسخة أكبر من النموذج في الذاكرة أو عدم ملاءمتها.
الخطوات التالية#
لمزيد من التعلم والدعم، راجع مستندات Ultralytics YOLO26.
الأسئلة الشائعة#
يُعد نشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson عملية مباشرة. أولًا، ثبّت صورة النظام على جهاز Jetson باستخدام NVIDIA JetPack SDK. ثم استخدم إما صورة Docker مُنشأة مسبقًا للإعداد السريع، أو ثبّت الحزم المطلوبة يدويًا. يمكن العثور على الخطوات التفصيلية لكل نهج في قسمي البدء السريع باستخدام Docker والبدء بالتثبيت الأصلي.
تم قياس أداء نماذج YOLO26 على أجهزة NVIDIA Jetson المختلفة مع إظهار تحسينات كبيرة في الأداء. على سبيل المثال، يوفر تنسيق TensorRT أفضل أداء للاستدلال. يوفر الجدول الموجود في قسم جداول المقارنة التفصيلية نظرة شاملة على مقاييس الأداء مثل mAP50-95 ووقت الاستدلال عبر تنسيقات النماذج المختلفة.
يوصى بشدة باستخدام TensorRT لنشر نماذج YOLO26 على NVIDIA Jetson نظرًا إلى أدائه الأمثل. فهو يسرّع الاستدلال بالاستفادة من إمكانات GPU في Jetson، مما يضمن أقصى قدر من الكفاءة والسرعة. تعرّف على المزيد حول التحويل إلى TensorRT وتشغيل الاستدلال في قسم استخدام TensorRT على NVIDIA Jetson.
لتثبيت PyTorch وTorchvision على NVIDIA Jetson، أزل أولًا أي إصدارات موجودة قد تكون ثُبّتت عبر pip. ثم ثبّت يدويًا إصدارات PyTorch وTorchvision المتوافقة مع بنية ARM64 في Jetson. تتوفر التعليمات التفصيلية لهذه العملية في قسم تثبيت PyTorch وTorchvision.
لتحقيق أقصى أداء على NVIDIA Jetson مع YOLO26، اتبع أفضل الممارسات التالية:
- فعّل وضع الطاقة القصوى للاستفادة من جميع أنوية CPU وGPU.
- فعّل ساعات Jetson لتشغيل جميع الأنوية عند ترددها الأقصى.
- ثبّت تطبيق Jetson Stats لمراقبة مقاييس النظام.
بالنسبة إلى الأوامر والتفاصيل الإضافية، راجع قسم أفضل الممارسات عند استخدام NVIDIA Jetson.
غالبًا ما تكون RAM المتاحة عنق الزجاجة في أجهزة Jetson ذات الذاكرة الأقل. وثمة ثلاث مكاسب سهلة يمكنها مجتمعةً استعادة أكثر من 1 GB:
- التبديل إلى الإقلاع دون واجهة (
sudo systemctl set-default multi-user.target) لإزالة واجهة المستخدم الرسومية لسطح المكتب (~865 MB مُوفَّرة). - تعطيل الخدمات غير المستخدمة مثل Bluetooth أو مديري الاتصال (~32 MB مُوفَّرة).
- تشغيل الاستدلال دون شاشة عبر ضبط
show=Falseفي استدعاء YOLOpredict، مما يتجنب تخصيص ذاكرة لمسار العرض (~200+ MB مُوفَّرة).
استخدم
procrankلتحديد استخدام RAM لكل عملية، وsudo cat /sys/kernel/debug/nvmap/iovmm/clientsلفحص تخصيصات GPU. راجع قسم نصائح تحسين الذاكرة للحصول على التفاصيل الكاملة.- التبديل إلى الإقلاع دون واجهة (
يحتوي TensorRT 10.3.0 المُضمّن مع JetPack 6 على مشكلة معروفة تمنع بناء محركات INT8 عند تمكين
nms=False. عندما تكتشف Ultralytics هذا التركيبة، فإنها تحدد تلقائياً رأس الواحد إلى متعدد لضمان نجاح التصدير.لاستعادة عمليات تصدير INT8 الخالية من NMS، قم بترقية TensorRT إلى إصدار أحدث (مثل 10.7.0+):
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get install -y tensorrtبعد التحديث، أعد تشغيل التصدير. لمزيد من التفاصيل، راجع مشكلة GitHub رقم 23841.