دليل البدء السريع: NVIDIA Jetson مع Ultralytics YOLO26#
يقدم هذا الدليل الشامل شرحاً مفصلاً لنشر نماذج Ultralytics YOLO26 على أجهزة NVIDIA Jetson. بالإضافة إلى ذلك، يعرض مقارنات الأداء لتوضيح إمكانيات YOLO26 على هذه الأجهزة الصغيرة والقوية.
لقد قمنا بتحديث هذا الدليل بأحدث NVIDIA Jetson AGX Thor Developer Kit الذي يوفر قدرة الحوسبة للذكاء الاصطناعي تصل إلى 2070 FP4 TFLOPS وذاكرة بحجم 128 جيجابايت مع طاقة قابلة للتكوين بين 40 واط و130 واط. وهو يوفر حوسبة ذكاء اصطناعي أعلى بأكثر من 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) المُسَرَّعَة إلى الأجهزة الطرفية. تُميَّز هذه الأجهزة المدمجة والقوية بأنها مبنية حول معمارية وحدة معالجة الرسومات من NVIDIA ويمكنها تشغيل خوارزميات الذكاء الاصطناعي المعقدة ونماذج التعلم العميق مباشرة على الجهاز، دون الاعتماد على موارد الحوسبة السحابية. غالباً ما تُستخدم لوحات Jetson في الروبوتات، والمركبات ذاتية القيادة، والأتمتة الصناعية، وتطبيقات أخرى حيث يحتاج استدلال الذكاء الاصطناعي إلى التنفيذ محلياً بزمن انتقال منخفض وكفاءة عالية. بالإضافة إلى ذلك، تعتمد هذه اللوحات على معمارية ARM64 وتعمل بطاقة أقل مقارنة بأجهزة حوسبة وحدات معالجة الرسومات التقليدية.
مقارنة سلسلة 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 | معالج رسوميات بمعمارية NVIDIA Blackwell بـ 2560 نواة مع 96 Tensor Core | معالج رسوميات بمعمارية NVIDIA Ampere بـ 2048 نواة مع 64 Tensor Core | معالج رسوميات بمعمارية NVIDIA Ampere بـ 1024 نواة مع 32 Tensor Core | معالج رسوميات بمعمارية NVIDIA Ampere بـ 1024 نواة مع 32 Tensor Core | معالج رسوميات بمعمارية NVIDIA Volta بـ 512 نواة مع 64 Tensor Core | معالج رسوميات بمعمارية NVIDIA Volta™ بـ 384 نواة مع 48 Tensor Core | معالج رسوميات بمعمارية NVIDIA Maxwell™ بـ 128 نواة |
| أقصى تردد لـ GPU | 1.57 GHz | 1.3 GHz | 918 MHz | 1020 MHz | 1377 MHz | 1100 MHz | 921MHz |
| CPU | وحدة معالجة مركزية Arm® Neoverse®-V3AE 64-bit بـ 14 نواة مع 1MB L2 + 16MB L3 | وحدة معالجة مركزية NVIDIA Arm® Cortex A78AE v8.2 64-bit بـ 12 نواة مع 3MB L2 + 6MB L3 | وحدة معالجة مركزية NVIDIA Arm® Cortex A78AE v8.2 64-bit بـ 8 أنوية مع 2MB L2 + 4MB L3 | وحدة معالجة مركزية Arm® Cortex®-A78AE v8.2 64-bit بـ 6 أنوية مع 1.5MB L2 + 4MB L3 | وحدة معالجة مركزية NVIDIA Carmel Arm®v8.2 64-bit بـ 8 أنوية مع 8MB L2 + 4MB L3 | وحدة معالجة مركزية NVIDIA Carmel Arm®v8.2 64-bit بـ 6 أنوية مع 6MB L2 + 4MB L3 | معالج 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 256-bit LPDDR5X 273GB/s | 64GB 256-bit LPDDR5 204.8GB/s | 16GB 128-bit LPDDR5 102.4GB/s | 8GB 128-bit LPDDR5 102 GB/s | 32GB 256-bit LPDDR4x 136.5GB/s | 8GB 128-bit LPDDR4x 59.7GB/s | 4GB 64-bit LPDDR4 25.6GB/s |
للحصول على جدول مقارنة أكثر تفصيلاً، يُرجى زيارة قسم مقارنة المواصفات في صفحة NVIDIA Jetson الرسمية.
ما هو NVIDIA JetPack؟#
NVIDIA JetPack SDK المُشغِّل لوحدات Jetson هو الحل الأكثر شمولاً ويوفر بيئة تطوير كاملة لبناء تطبيقات ذكاء اصطناعي مُسَرَّعَة من البداية إلى النهاية ويقصر وقت طرحها في الأسواق. يتضمن JetPack نظام Jetson Linux مع مُحمّل الإقلاع (bootloader)، ونواة Linux، وبيئة سطح مكتب Ubuntu، ومجموعة كاملة من المكتبات لتسريع حوسبة وحدات معالجة الرسومات، والوسائط المتعددة، والرسومات، ورؤية الكمبيوتر. كما يتضمن عينات، ووثائق، وأدوات مطورين لكل من الكمبيوتر المُضيف ومجموعة أدوات المطورين، ويدعم حزم أدوات البرمجة (SDKs) ذات المستوى الأعلى مثل DeepStream لتحليلات دفق الفيديو، وIsaac للروبوتات، وRiva للذكاء الاصطناعي التفاعلي.
تثبيت (Flash) JetPack على NVIDIA Jetson#
الخطوة الأولى بعد الحصول على جهاز NVIDIA Jetson هي تثبيت NVIDIA JetPack على الجهاز. هناك عدة طرق مختلفة لتثبيت البرامج على أجهزة NVIDIA Jetson.
- بالنسبة لـ JetPack 7.2 على مجموعة أدوات مطورين Jetson AGX Thor أو AGX Orin أو Orin Nano الرسمية، قم بتنزيل ملف ISO الموحد لـ Jetson، واكتبه على محرك أقراص فلاش USB، واتبع دليل البدء السريع الخاص بالجهاز لـ AGX Thor أو AGX Orin أو Orin Nano. بدءاً من JetPack 7.2، لم يعد Orin Nano يستخدم صورة بطاقة SD قابلة للتنزيل؛ يقوم برنامج تثبيت ISO عبر USB بتثبيت Jetson Linux على بطاقة microSD الخاصة بالجهاز أو قرص NVMe SSD.
- إذا كنت تستخدم JetPack 6 عمداً على مجموعة أدوات مطورين Jetson Orin Nano، فاتبع تعليمات تحديث JetPack 6.x وبطاقة SD الخاصة بـ NVIDIA.
- إذا كنت تمتلك أي مجموعة أدوات تطور أخرى من 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 العامة حالياً على مسار JetPack 7.0 Thor/DGX Spark فقط. بالنسبة لـ JetPack 7.2 على Thor أو Orin، استخدم التثبيت الأصلي أدناه حتى يتم التحقق من صحة الصورة العامة صراحة وتحديثها لتلك التركيبات.
بعد القيام بذلك، انتقل إلى قسم استخدام TensorRT على NVIDIA Jetson.
البدء بالتثبيت الأصلي (Native Installation)#
للتثبيت الأصلي بدون Docker، يرجى الرجوع إلى الخطوات أدناه.
التشغيل على JetPack 7.2#
تثبيت حزمة Ultralytics#
هنا سنقوم بتثبيت حزمة Ultralytics على Jetson مع التبعيات الاختيارية حتى نتمكن من تصدير نماذج PyTorch إلى تنسيقات أخرى مختلفة. سنركز بشكل أساسي على عمليات تصدير NVIDIA TensorRT لأن TensorRT سيضمن حصولنا على أقصى أداء من أجهزة Jetson.
-
تحديث قائمة الحزم، وتثبيت pip والترقية إلى الأحدث
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip لـ
ultralyticsمع التبعيات الاختياريةpip install ultralytics[export] -
إعادة تشغيل الجهاز
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#
حزمة onnxruntime-gpu المستضافة في PyPI لا تحتوي على ملفات ثنائية aarch64 لـ Jetson. لذا نحتاج إلى تثبيت هذه الحزمة يدويًا. هذه الحزمة مطلوبة لبعض عمليات التصدير.
هنا سنقوم بتنزيل وتثبيت 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 مع التبعيات الاختيارية حتى نتمكن من تصدير نماذج PyTorch إلى تنسيقات أخرى مختلفة. سنركز بشكل أساسي على عمليات تصدير NVIDIA TensorRT لأن TensorRT سيضمن حصولنا على أقصى أداء من أجهزة Jetson.
-
تحديث قائمة الحزم، وتثبيت pip والترقية إلى الأحدث
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip لـ
ultralyticsمع التبعيات الاختياريةpip install ultralytics[export] -
إعادة تشغيل الجهاز
sudo reboot
تثبيت PyTorch وTorchvision#
سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch و Torchvision. ومع ذلك، فإن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson، والتي تعتمد على بنية ARM64. لذلك، نحتاج إلى تثبيت حزمة PyTorch المجهزة مسبقًا عبر pip يدويًا وتجميع أو تثبيت 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 لـ 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#
حزمة onnxruntime-gpu المستضافة في PyPI لا تحتوي على ملفات ثنائية aarch64 لـ Jetson. لذا نحتاج إلى تثبيت هذه الحزمة يدويًا. هذه الحزمة مطلوبة لبعض عمليات التصدير.
يمكنك العثور على جميع حزم 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 مع التبعيات الاختيارية حتى نتمكن من تصدير نماذج PyTorch إلى تنسیقات أخرى مختلفة. سنركز بشكل أساسي على عمليات تصدير NVIDIA TensorRT لأن TensorRT سيضمن حصولنا على أقصى أداء من أجهزة Jetson.
-
تحديث قائمة الحزم، وتثبيت pip والترقية إلى الأحدث
sudo apt update sudo apt install python3-pip -y pip install -U pip -
تثبيت حزمة pip لـ
ultralyticsمع التبعيات الاختياريةpip install ultralytics[export] -
إعادة تشغيل الجهاز
sudo reboot
تثبيت PyTorch وTorchvision#
سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch و Torchvision. ومع ذلك، فإن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson، والتي تعتمد على بنية ARM64. لذلك، نحتاج إلى تثبيت حزمة PyTorch المجهزة مسبقًا عبر pip يدويًا وتجميع أو تثبيت 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 لـ Jetson للوصول إلى جميع الإصدارات المختلفة من PyTorch لإصدارات JetPack المختلفة. للحصول على قائمة أكثر تفصيلاً حول توافق PyTorch و Torchvision، تفضل بزيارة صفحة توافق PyTorch و Torchvision.
تثبيت onnxruntime-gpu#
حزمة onnxruntime-gpu المستضافة في PyPI لا تحتوي على ملفات ثنائية aarch64 لـ Jetson. لذا نحتاج إلى تثبيت هذه الحزمة يدويًا. هذه الحزمة مطلوبة لبعض عمليات التصدير.
يمكنك العثور على جميع حزم 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 المخصص.
يمكنك أيضاً التصدير من المتصفح دون تكوين بيئة الإنشاء محلياً. في علامة تبويب تصدير نماذج Ultralytics Platform، حدد TensorRT وهدف Jetson المقصود. يتم التحقق من صحة خيارات Thor على الأجهزة الفعلية لـ Thor. تنتج خيارات Orin الستة حالياً محركات مرشحة مبنية على AGX-Orin؛ تحقق من صحتها على وحدة Orin SKU المقصودة قبل النشر.
يقوم TensorRT بتهيئة وضبط المحرك على وحدة معالجة الرسومات (GPU) الخاصة بالبناء. طابق بنية GPU الخاصة بالهدف ووقت تشغيل TensorRT/CUDA، وتحقق من صحة كل محرك تم تنزيله على جهاز النشر. لا تعد وحدات Orin ذات البنية المتشابهة ضماناً تلقائياً لقابلية النقل، ويجب أن يستخدم معايرة 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")تفضل بزيارة صفحة التصدير للوصول إلى الوسائط الإضافية عند تصدير النماذج إلى تنسيقات نماذج مختلفة
استخدام مسرع التعلم العميق (DLA) من NVIDIA#
NVIDIA Deep Learning Accelerator (DLA) هو مكون هاردوير متخصص مدمج في أجهزة NVIDIA Jetson يعمل على تحسين استدلال التعلم العميق لتحقيق كفاءة الطاقة والأداء. من خلال إفراغ المهام من وحدة معالجة الرسومات (مما يتيح لها التعامل مع عمليات مكثفة أكثر)، يتيح DLA للنماذج التشغيل باستهلاك طاقة أقل مع الحفاظ على إنتاجية عالية، وهو مثالي للأنظمة المضمنة وتطبيقات الذكاء الاصطناعي في الوقت الفعلي.
لا يتم دعم DLA في TensorRT 11.0 ومن المخطط عودته في إصدار لاحق، لذا يتطلب تصدير DLA استخدام TensorRT 10.x. على JetPack 6.x/7.x، قم بالتصدير باستخدام إصدار TensorRT 10.x لاستخدام DLA، أو استخدم GPU لمحركات TensorRT 11.0.
أجهزة 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. بدلاً من ذلك، غرضه الأساسي هو زيادة الإنتاجية وتحسين كفاءة الطاقة.
معايير NVIDIA Jetson YOLO11/ YOLO26#
تم تشغيل مقارنات أداء YOLO11/ YOLO26 بواسطة فريق Ultralytics على 11 تنسيق نموذج مختلف لقياس السرعة والدقة: PyTorch و TorchScript و ONNX و OpenVINO و TensorRT و TF SavedModel و TF GraphDef و TF Lite و MNN و NCNN و ExecuTorch. أجريت مقارنات الأداء على مجموعة أدوات مطورين NVIDIA Jetson AGX Thor، ومجموعة أدوات مطورين NVIDIA Jetson AGX Orin (64GB)، ومجموعة أدوات مطورين NVIDIA Jetson Orin Nano Super، وجهاز Seeed Studio reComputer J4012 المدعوم بوحدة Jetson Orin NX 16GB بدقة FP32 precision مع حجم صورة الإدخال الافتراضي البالغ 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#
جداول مقارنة تفصيلية#
يمثل الجدول أدناه نتائج القياس لخمسة نماذج مختلفة (YOLO11n, YOLO11s, YOLO11m, YOLO11l, YOLO11x) عبر 11 تنسيقًا مختلفًا (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch)، مما يعطينا الحالة والحجم ومقياس mAP50-95(B) ووقت الاستنتاج لكل مجموعة.
NVIDIA Jetson AGX Thor Developer Kit#
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| 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)#
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| 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#
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| 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#
| التنسيق | الحالة | الحجم على القرص (ميجابايت) | mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|
| 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 YOLO11n PyTorch model
model = YOLO("yolo11n.pt")
# Benchmark YOLO11n 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.
-
تمكين وضع الطاقة الأقصى (MAX Power Mode)
سيضمن تمكين وضع الطاقة الأقصى على Jetson تشغيل جميع أنوية CPU و GPU.
sudo nvpmodel -m 0 -
تمكين ساعات Jetson (Jetson Clocks)
سيضمن تمكين ساعات 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 جيجابايت) أو Orin NX 8 جيجابايت. النصائح أدناه هي تغييرات عملية ومنخفضة المخاطر يمكنها مجتمعة تحرير عدة مئات من الميجابايت وتتيح لك تشغيل نماذج YOLO أكبر أو دعم أحمال عمل متوازية إضافية. للحصول على معالجة شاملة، راجع مدونة NVIDIA حول تعظيم كفاءة الذاكرة على Jetson.
التبديل إلى الإقلاع بدون واجهة رسومية (Headless Boot)#
إذا كان جهاز Jetson الخاص بك متصلًا عبر SSH أو يعمل كجهاز إنتاج بدون شاشة متصلة، فإن التخلص من بيئة سطح المكتب وخادم العرض يمكن أن يستعيد ما يصل إلى 865 ميجابايت من ذاكرة الوصول العشوائي (RAM):
sudo systemctl set-default multi-user.target
sudo rebootلاستعادة سطح المكتب لاحقًا:
sudo systemctl set-default graphical.target
sudo rebootتعطيل خدمات النظام غير المستخدمة#
تستهلك خدمات الخلفية غير الأساسية (Bluetooth، مديرو الاتصال، برامج تشغيل الأجهزة غير المستخدمة) حوالي 32 ميجابايت مجتمعة. قم بإدراج الخدمات النشطة وعطّل أي شيء لا يتطلبه نشرك:
# List running services
systemctl list-units --type=service --state=running
# Disable a service
sudo systemctl disable SERVICE_NAMEتحليل استخدام الذاكرة#
قبل التحسين، حدد العمليات التي تستهلك ذاكرة الوصول العشوائي (RAM) حقاً. يقوم procrank بترتيب العمليات حسب PSS (Proportional Set Size)، والذي يعكس بصمة الذاكرة الفعلية لكل عملية بدقة أكبر من RSS (Resident Set Size، إجمالي صفحة 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/clientsتشغيل الاستدلال بدون شاشة في الإنتاج#
بالنسبة لخطوط أنابيب الاستدلال التي ليس لديها متطلبات معاينة مباشرة، يمكن أن يؤدي تعطيل المكونات المتعلقة بالعرض (Tiler، OSD، DisplaySink) إلى توفير أكثر من 200 ميجابايت من خط الأنابيب وحده. مع Ultralytics YOLO، قم بقمع العارض واكتب النتائج على القرص بدلاً من ذلك:
from ultralytics import YOLO
model = YOLO("yolo11n.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 جيجابايت+ |
الجمع بين هذه التغييرات قيم بشكل خاص عند استهداف نماذج TensorRT INT8 على الأجهزة ذات الذاكرة المحدودة - يمكن أن يكون الفارق بين القدرة على استيعاب متغير نموذج أكبر في الذاكرة أم لا.
الخطوات التالية#
لمزيد من التعلم والدعم، راجع وثائق Ultralytics YOLO26.
الأسئلة الشائعة#
يعد نشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson عملية مباشرة. أولاً، قم بتثبيت نظام التشغيل على جهاز Jetson باستخدام NVIDIA JetPack SDK. بعد ذلك، استخدم إما صورة Docker مُعدّة مسبقاً للإعداد السريع أو قم بتثبيت الحزم المطلوبة يدويًا. يمكن العثور على الخطوات التفصيلية لكل نهج في قسمي البدء السريع باستخدام Docker و البدء بالتثبيت الأصلي.
تم اختبار أداء نماذج YOLO11 على أجهزة NVIDIA Jetson المختلفة مع إظهار تحسينات كبيرة في الأداء. على سبيل المثال، يقدم تنسيق TensorRT أفضل أداء للاستدلال. يوفر الجدول في قسم جداول المقارنة التفصيلية نظرة شاملة على مقاييس الأداء مثل mAP50-95 وقت الاستدلال عبر تنسيقات النماذج المختلفة.
يوصى بشدة باستخدام TensorRT لنشر نماذج YOLO26 على NVIDIA Jetson نظراً لأدائه الأمثل. فهو يسرع الاستدلال من خلال الاستفادة من قدرات معالجة الرسومات في Jetson، مما يضمن أقصى قدر من الكفاءة والسرعة. تعرف على المزيد حول كيفية التحويل إلى TensorRT وتشغيل الاستدلال في قسم استخدام TensorRT على NVIDIA Jetson.
لتثبيت PyTorch و Torchvision على NVIDIA Jetson، قم أولاً بإلغاء تثبيت أي إصدارات حالية ربما تم تثبيتها عبر pip. ثم قم بتثبيت الإصدارات المتوافقة من PyTorch و Torchvision مع معمارية ARM64 الخاصة بـ Jetson يدويًا. يتم توفير إرشادات مفصلة لهذه العملية في قسم تثبيت PyTorch و Torchvision.
لتحقيق أقصى قدر من الأداء على NVIDIA Jetson باستخدام YOLO26، اتبع أفضل الممارسات التالية:
- قم بتمكين وضع الطاقة الأقصى (MAX Power Mode) لاستخدام جميع أنوية CPU وGPU.
- قم بتمكين ساعات Jetson (Jetson Clocks) لتشغيل جميع الأنوية بأقصى تردد لها.
- قم بتثبيت تطبيق Jetson Stats لمراقبة مقاييس النظام.
للأوامر والتفاصيل الإضافية، راجع قسم أفضل الممارسات عند استخدام NVIDIA Jetson.
غالباً ما تكون ذاكرة الوصول العشوائي (RAM) المتاحة هي عنق الزجاجة في أجهزة Jetson ذات الذاكرة الأقل. ثلاث خطوات سهلة يمكنها مجتمعة استعادة أكثر من 1 جيجابايت:
- التبديل إلى الإقلاع بدون واجهة رسومية (
sudo systemctl set-default multi-user.target) لإلغاء واجهة سطح المكتب الرسومية (وفّر حوالي 865 ميجابايت). - تعطيل الخدمات غير المستخدمة مثل البلوتوث أو مديري الاتصال (~32 ميجابايت موفرة).
- تشغيل الاستدلال بدون شاشة عرض من خلال تعيين
show=Falseفي استدعاء YOLO الخاص بـpredict، مما يتجنب تخصيص ذاكرة مسار العرض (وفّر حوالي 200+ ميجابايت).
استخدم
procrankلتوصيف استخدام ذاكرة الوصول العشوائي (RAM) لكل عملية وsudo cat /sys/kernel/debug/nvmap/iovmm/clientsلفحص تخصيصات وحدة معالجة الرسومات. راجع قسم نصائح تحسين الذاكرة للحصول على التفاصيل الكاملة.- التبديل إلى الإقلاع بدون واجهة رسومية (
يحتوي TensorRT 10.3.0 المدمج مع JetPack 6 على مشكلة معروفة تمنع بناء محركات INT8 عند تمكين
end2end=True. عندما تكتشف Ultralytics هذا التجميع، فإنها تعطل فرع end2end تلقائياً لضمان نجاح التصدير.لاستعادة صادرات end2end INT8، قم بترقية 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.