Ultralytics YOLO27:
Get Started

دليل البدء السريع: NVIDIA Jetson مع Ultralytics YOLO26#

يقدم هذا الدليل الشامل شرحًا تفصيليًا لنشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson. كما يعرض معايير أداء توضح إمكانات YOLO26 على هذه الأجهزة الصغيرة والقوية.

دعم منتج جديد

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



شاهد: كيفية استخدام Ultralytics YOLO26 على أجهزة NVIDIA Jetson
NVIDIA Jetson Ecosystem
ملاحظة

اختُبر هذا الدليل باستخدام 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/ 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 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
أداء الذكاء الاصطناعي2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPUGPU ببنية NVIDIA Blackwell، يضم 2560 نواة و96 نواة TensorGPU ببنية NVIDIA Ampere، يضم 2048 نواة و64 نواة TensorGPU ببنية NVIDIA Ampere، يضم 1024 نواة و32 نواة TensorGPU ببنية NVIDIA Ampere، يضم 1024 نواة و32 نواة TensorGPU ببنية NVIDIA Volta، يضم 512 نواة و64 نواة TensorGPU ببنية NVIDIA Volta™، يضم 384 نواة و48 نواة TensorGPU ببنية NVIDIA Maxwell™، يضم 128 نواة
أقصى تردد لـ GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPUCPU ‏Arm® Neoverse®-V3AE ‏64-bit، بـ 14 نواة، وذاكرة L2 بسعة 1MB وذاكرة L3 بسعة 16MBCPU ‏NVIDIA Arm® Cortex A78AE v8.2 ‏64-bit، بـ 12 نواة، وذاكرة L2 بسعة 3MB وذاكرة L3 بسعة 6MBCPU ‏NVIDIA Arm® Cortex A78AE v8.2 ‏64-bit، بـ 8 نوى، وذاكرة L2 بسعة 2MB وذاكرة L3 بسعة 4MBCPU ‏Arm® Cortex®-A78AE v8.2‏، 64 بت، سداسي النوى، ذاكرة L2 بسعة 1.5MB وذاكرة L3 بسعة 4MBCPU ‏NVIDIA Carmel Arm®v8.2‏، 64 بت، ثماني النوى، ذاكرة L2 بسعة 8MB وذاكرة L3 بسعة 4MBCPU ‏NVIDIA Carmel Arm®v8.2‏، 64 بت، سداسي النوى، ذاكرة L2 بسعة 6MB وذاكرة L3 بسعة 4MBمعالج رباعي النوى Arm® Cortex®-A57 MPCore
أقصى تردد لـ CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
الذاكرة128GB ‏LPDDR5X‏، ناقل 256-bit، بسرعة 273GB/s64GB ‏LPDDR5‏، ناقل 256-bit، بسرعة 204.8GB/s16GB ‏LPDDR5‏، ناقل 128-bit، بسرعة 102.4GB/s8GB ‏LPDDR5‏، ناقل 128-bit، بسرعة 102 GB/s32GB ‏LPDDR4x‏، ناقل 256-bit، بسرعة 136.5GB/s8GB ‏LPDDR4x‏، ناقل 128-bit، بسرعة 59.7GB/s4GB ‏LPDDR4‏، ناقل 64-bit، بسرعة 25.6GB/s

للاطلاع على جدول مقارنة أكثر تفصيلاً، يُرجى زيارة قسم مقارنة المواصفات في صفحة NVIDIA Jetson الرسمية.

ما NVIDIA JetPack؟#

يُعد NVIDIA JetPack SDK، الذي يشغّل وحدات Jetson، الحل الأكثر شمولاً؛ إذ يوفر بيئة تطوير متكاملة لإنشاء تطبيقات AI مُسرّعة من البداية إلى النهاية، ويساعد على تقصير وقت الوصول إلى السوق. يتضمن JetPack نظام Jetson Linux مع محمّل الإقلاع ونواة Linux وبيئة سطح المكتب Ubuntu ومجموعة متكاملة من المكتبات لتسريع الحوسبة على GPU والوسائط المتعددة والرسوميات والرؤية الحاسوبية. كما يتضمن أمثلة ووثائق وأدوات للمطورين لكل من الحاسوب المضيف ومجموعة التطوير، ويدعم SDKs ذات المستوى الأعلى مثل DeepStream لتحليلات الفيديو المتدفق، وIsaac للروبوتات، وRiva للذكاء الاصطناعي الحواري.

تثبيت JetPack على NVIDIA Jetson#

تتمثل الخطوة الأولى بعد الحصول على جهاز NVIDIA Jetson في تثبيت NVIDIA JetPack عليه. توجد عدة طرق مختلفة لتثبيت البرامج على أجهزة NVIDIA Jetson.

  1. لتثبيت 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 قابلة للتنزيل؛ إذ يثبّت ملف ISO عبر USB نظام Jetson Linux على بطاقة microSD أو SSD من نوع NVMe في الجهاز.
  2. إذا كنت تستخدم JetPack 6 عمداً على مجموعة تطوير Jetson Orin Nano، فاتبع تعليمات التحديث إلى JetPack 6.x وتعليمات بطاقة SD من NVIDIA.
  3. إذا كنت تملك أي مجموعة تطوير NVIDIA أخرى، فيمكنك تثبيت JetPack على الجهاز باستخدام SDK Manager.
  4. إذا كنت تملك جهاز Seeed Studio reComputer J4012، فيمكنك تثبيت JetPack على SSD المرفق، وإذا كنت تملك جهاز Seeed Studio reComputer J1020 v2، فيمكنك تثبيت JetPack على eMMC/ SSD.
  5. إذا كنت تملك جهازاً آخر من جهة خارجية يعمل بوحدة NVIDIA Jetson، فيُوصى باتباع طريقة التثبيت عبر سطر الأوامر.
ملاحظة

بالنسبة إلى الطرق 1 و4 و5 أعلاه، بعد تثبيت النظام وتشغيل الجهاز، أدخل الأمر "sudo apt update && sudo apt install nvidia-jetpack -y" في طرفية الجهاز لتثبيت بقية مكونات JetPack المطلوبة.

دعم JetPack حسب جهاز Jetson#

يوضح الجدول أدناه إصدارات NVIDIA JetPack المدعومة على أجهزة NVIDIA Jetson المختلفة.

JetPack 4JetPack 5JetPack 6JetPack 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
دعم Docker وTensorRT في JetPack 7

تستخدم الصورة 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 فقط على مضيف مدعوم. لتصدير TensorRT على Jetson، استخدم التثبيت الأصلي الموضح أدناه مع إصدار TensorRT 10.x الذي يدعمه إصدار JetPack لديك. يتطلب JetPack 7.2 على Thor أو Orin التحقق من الحاوية بشكل منفصل. أعد بناء المحركات لتناسب GPU المستهدف وإصدار TensorRT.

بالنسبة إلى صور JetPack 4 و5 و6، تابع إلى استخدام TensorRT على NVIDIA Jetson. صورة JetPack 7.1 أعلاه مخصصة لأحمال عمل PyTorch فقط.

ابدأ بالتثبيت الأصلي#

لإجراء تثبيت أصلي من دون Docker، يُرجى اتباع الخطوات أدناه.

التشغيل على JetPack 7.2#

تثبيت حزمة Ultralytics#

سنثبّت هنا حزمة Ultralytics على Jetson. تُثبّت تبعيات التصدير تلقائياً عند تصدير نموذج للمرة الأولى، لذا لا نحتاج هنا إلا إلى الحزمة الأساسية. سنركز بشكل أساسي على تصدير NVIDIA TensorRT، لأن TensorRT يضمن الاستفادة من أقصى أداء لأجهزة Jetson.

  1. حدّث قائمة الحزم، وثبّت pip، ثم رقِّه إلى أحدث إصدار

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ثبّت حزمة pip المسماة ultralytics

    pip install ultralytics
  3. أعِد تشغيل الجهاز

    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 wheel متوافقة مع إصدارات JetPack وPython وCUDA لديك. تتضمن إصدارات PyPI الحالية حزم ARM64 wheels، لكنها لا تحل محل الحزم الخاصة بالجهاز في كل إصدارات 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.

  1. حدّث قائمة الحزم، وثبّت pip، ثم رقِّه إلى أحدث إصدار

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ثبّت حزمة pip المسماة ultralytics

    pip install ultralytics
  3. أعِد تشغيل الجهاز

    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 لأجهزة 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 wheel متوافقة مع إصدارات JetPack وPython وCUDA لديك. تتضمن إصدارات PyPI الحالية حزم ARM64 wheels، لكنها لا تحل محل الحزم الخاصة بالجهاز في كل إصدارات JetPack.

يمكنك العثور على جميع حزم onnxruntime-gpu المتاحة، مرتبة حسب إصدار JetPack وإصدار Python وتفاصيل التوافق الأخرى، في مصفوفة توافق ONNX Runtime في Jetson Zoo.

بالنسبة إلى 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.

  1. حدّث قائمة الحزم، وثبّت pip، ثم رقِّه إلى أحدث إصدار

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ثبّت حزمة pip المسماة ultralytics

    pip install ultralytics
  3. أعِد تشغيل الجهاز

    sudo reboot

تثبيت PyTorch وTorchvision#

سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch وTorchvision. لكن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson، التي تعتمد على بنية ARM64. لذلك، يجب تثبيت حزمة PyTorch pip wheel مُنشأة مسبقاً يدوياً، ثم تجميع Torchvision من المصدر أو تثبيته منه.

  1. أزِل تثبيت PyTorch وTorchvision المثبتين حالياً

    pip uninstall torch torchvision
  2. ثبّت torch 2.1.0 وtorchvision 0.16.2 وفقاً لـ JP5.1.2

    pip 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#

استخدم حزمة ONNX Runtime GPU wheel متوافقة مع إصدارات JetPack وPython وCUDA لديك. تتضمن إصدارات PyPI الحالية حزم ARM64 wheels، لكنها لا تحل محل الحزم الخاصة بالجهاز في كل إصدارات JetPack.

يمكنك العثور على جميع حزم onnxruntime-gpu المتاحة، مرتبة حسب إصدار JetPack وإصدار Python وتفاصيل التوافق الأخرى، في مصفوفة توافق ONNX Runtime في Jetson Zoo. سننزّل هنا 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. قبل التصدير، ثبّت روابط PyTorch الخاصة بـ TensorRT المتاحة لإصدار JetPack لديك، وتحقق منها باستخدام python3 -c "import tensorrt; print(tensorrt.__version__)". أبقِ على إصدار التشغيل المدعوم TensorRT 10.x في JetPack 6/7؛ ولا تستبدله بـ TensorRT 11.2.1. للاطلاع على تعليمات الإعداد والاستخدام المتقدم، راجع دليل تكامل TensorRT المخصص.

يمكنك أيضاً التصدير من المتصفح دون إعداد بيئة البناء محلياً. في علامة تبويب تصدير النماذج في منصة Ultralytics، اختر TensorRT وجهاز Jetson المستهدف. يجري التحقق من خيارات Thor على أجهزة Thor فعلية. تنتج خيارات Orin الستة حالياً محركات مرشحة مبنية على AGX-Orin؛ لذا تحقّق من صلاحيتها على طراز Orin المستهدف قبل النشر.

محركات TensorRT خاصة بالجهاز

يُنشئ TensorRT المحرك ويضبطه على GPU المستخدم في بنائه. طابق بنية GPU المستهدف وبيئة تشغيل TensorRT/CUDA، وتحقّق من كل محرك تم تنزيله على جهاز النشر. لا يضمن تطابق البنية بين طرازات Orin إمكانية النقل تلقائياً، كما ينبغي إجراء معايرة INT8 على الجهاز المستهدف للحصول على أفضل النتائج.

تحويل النموذج إلى TensorRT وتشغيل الاستدلال#

يُحوَّل نموذج YOLO26n بصيغة PyTorch إلى TensorRT لتشغيل الاستدلال باستخدام النموذج المُصدَّر.

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج YOLO26n بصيغة PyTorch⁩
model = YOLO("yolo26n.pt")

# ⁨تصدير النموذج إلى TensorRT⁩
model.export(format="engine")  # ⁨ينشئ 'yolo26n.engine'⁩

# ⁨تحميل نموذج TensorRT المُصدَّر⁩
trt_model = YOLO("yolo26n.engine")

# ⁨تنفيذ الاستدلال⁩
results = trt_model("https://ultralytics.com/images/bus.jpg")
ملاحظة

انتقل إلى صفحة التصدير للاطلاع على الوسائط الإضافية عند تصدير النماذج إلى تنسيقات نماذج مختلفة

استخدام مُسرّع التعلم العميق من NVIDIA (DLA)#

مُسرّع التعلم العميق من NVIDIA (DLA) مكوّن عتادي متخصص مدمج في أجهزة NVIDIA Jetson، يرفع كفاءة استدلال التعلم العميق من حيث استهلاك الطاقة والأداء. ومن خلال نقل المهام من GPU وتوفير موارده للعمليات الأشد تطلباً، يتيح DLA تشغيل النماذج باستهلاك أقل للطاقة مع الحفاظ على معدل نقل عالٍ، ما يجعله مثالياً للأنظمة المضمنة وتطبيقات AI الآنية.

توافق TensorRT وDLA

تدرج NVIDIA الإصدار TensorRT 10.7 بوصفه آخر إصدار يتضمن دعم DLA؛ إذ لا تدعم الإصدارات TensorRT 11.0 و11.1 و11.2 تقنية DLA. استخدم إصدار TensorRT الداعم لـ DLA والمتوافق مع إصدار JetPack لديك. لا يدعم TensorRT 11.2.1 نظام JetPack، بما في ذلك عمليات التصدير التي تستخدم GPU فقط.

أجهزة Jetson التالية مزودة بعتاد DLA:

جهاز Jetsonأنوية DLAأقصى تردد لـ DLA
سلسلة Jetson AGX Orin21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX ‏8GB1614 MHz
سلسلة Jetson AGX Xavier21.4 GHz
سلسلة Jetson Xavier NX21.1 GHz
مثال
from ultralytics import YOLO

# ⁨تحميل نموذج YOLO26n بصيغة PyTorch⁩
model = YOLO("yolo26n.pt")

# ⁨تصدير النموذج إلى TensorRT مع تفعيل DLA (يعمل مع FP16 أو INT8 فقط)⁩
model.export(format="engine", device="dla:0", quantize=16)  # ⁨تشير dla:0 أو dla:1 إلى أنوية DLA⁩

# ⁨تحميل نموذج TensorRT المُصدَّر⁩
trt_model = YOLO("yolo26n.engine")

# ⁨تنفيذ الاستدلال⁩
results = trt_model("https://ultralytics.com/images/bus.jpg")
ملاحظة

عند استخدام عمليات التصدير إلى DLA، قد لا تكون بعض الطبقات مدعومة للتشغيل على DLA، لذا ستعود إلى GPU لتنفيذها. وقد يؤدي هذا الرجوع إلى إضافة زمن انتقال والتأثير في أداء الاستدلال الإجمالي. لذلك، لم يُصمَّم DLA أساساً لتقليل زمن الاستدلال مقارنةً بتشغيل TensorRT بالكامل على GPU. بل تتمثل غايته الأساسية في زيادة معدل النقل وتحسين كفاءة استهلاك الطاقة.

مقاييس أداء YOLO26 على NVIDIA Jetson#

أجرى فريق Ultralytics اختبارات أداء YOLO26 باستخدام 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 وبحجم صورة إدخال افتراضي قدره 640.

مخططات المقارنة#

على الرغم من أن جميع عمليات تصدير النماذج تعمل على NVIDIA Jetson، فقد أدرجنا PyTorch وTorchScript وTensorRT فقط في مخطط المقارنة أدناه، لأنها تستفيد من GPU في Jetson ويُضمن معها تحقيق أفضل النتائج. أما عمليات التصدير الأخرى فتستخدم CPU فقط، ولا تضاهي أداء التنسيقات الثلاثة المذكورة أعلاه. يمكنك الاطلاع على مقاييس أداء جميع عمليات التصدير في القسم الذي يلي هذا المخطط.

مجموعة أدوات المطورين NVIDIA Jetson AGX Thor#

Jetson AGX Thor Benchmarks
تم قياس الأداء باستخدام Ultralytics 8.3.226

مجموعة أدوات المطورين NVIDIA Jetson AGX Orin (64GB)#

Jetson AGX Orin Benchmarks
تم قياس الأداء باستخدام Ultralytics 8.4.32

مجموعة أدوات المطورين NVIDIA Jetson Orin Nano Super#

Jetson Orin Nano Super Benchmarks
تم قياس الأداء باستخدام Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
تم قياس الأداء باستخدام Ultralytics 8.4.33

جداول المقارنة التفصيلية#

يعرض الجدول أدناه نتائج الاختبارات المعيارية لخمسة نماذج مختلفة (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#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)وقت الاستدلال (ms/im)
PyTorch✅5.30.47987.39
TorchScript✅9.80.47894.21
ONNX✅9.50.47676.58
OpenVINO✅10.10.479417.50
TensorRT (FP32)✅13.90.47911.90
TensorRT (FP16)✅7.60.47971.39
TensorRT (INT8)✅6.50.42731.52
TF SavedModel✅25.70.476447.24
TF GraphDef✅9.50.476445.98
TF Lite✅9.90.4764182.04
MNN✅9.40.478421.83

أُجريت الاختبارات المعيارية باستخدام Ultralytics 8.4.7

ملاحظة

لا يشمل وقت الاستدلال المعالجة المسبقة أو اللاحقة.

مجموعة أدوات المطورين NVIDIA Jetson AGX Orin (64GB)#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)وقت الاستدلال (ms/im)
PyTorch✅5.30.479011.58
TorchScript✅9.80.47704.60
ONNX✅9.50.47709.87
OpenVINO✅9.60.482028.80
TensorRT (FP32)✅11.50.47704.18
TensorRT (FP16)✅7.90.47892.62
TensorRT (INT8)✅5.40.46402.30
TF SavedModel✅24.60.476071.10
TF GraphDef✅9.50.476070.02
TF Lite✅9.90.4760227.94
MNN✅9.40.476032.46
NCNN✅9.30.481029.93

أُجريت الاختبارات المعيارية باستخدام Ultralytics 8.4.32

ملاحظة

لا يشمل وقت الاستدلال المعالجة المسبقة أو اللاحقة.

مجموعة أدوات المطورين NVIDIA Jetson Orin Nano Super#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)وقت الاستدلال (ms/im)
PyTorch✅5.30.479015.60
TorchScript✅9.80.477012.60
ONNX✅9.50.476015.76
OpenVINO✅9.60.482056.23
TensorRT (FP32)✅11.30.47707.53
TensorRT (FP16)✅8.10.48004.57
TensorRT (INT8)✅5.30.44903.80
TF SavedModel✅24.60.4760118.33
TF GraphDef✅9.50.4760116.30
TF Lite✅9.90.4760286.00
MNN✅9.40.476068.77
NCNN✅9.30.481047.50

أُجريت الاختبارات المعيارية باستخدام Ultralytics 8.4.33

ملاحظة

لا يشمل وقت الاستدلال المعالجة المسبقة أو اللاحقة.

NVIDIA Jetson Orin NX 16GB#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)وقت الاستدلال (ms/im)
PyTorch✅5.30.479913.90
TorchScript✅9.80.478711.60
ONNX✅9.50.476314.18
OpenVINO✅9.60.481940.19
TensorRT (FP32)✅11.40.47707.01
TensorRT (FP16)✅8.00.47894.13
TensorRT (INT8)✅5.50.44893.49
TF SavedModel✅24.60.476492.34
TF GraphDef✅9.50.476492.06
TF Lite✅9.90.4764254.43
MNN✅9.40.476048.55
NCNN✅9.30.480534.31

أُجريت الاختبارات المعيارية باستخدام Ultralytics 8.4.33

ملاحظة

لا يشمل وقت الاستدلال المعالجة المسبقة أو اللاحقة.

استكشف المزيد من جهود الاختبارات المعيارية التي أجرتها Seeed Studio على إصدارات مختلفة من أجهزة NVIDIA Jetson.

إعادة إنتاج نتائجنا#

لإعادة إنتاج اختبارات Ultralytics المعيارية أعلاه على جميع التنسيقات المصدّرة، شغّل هذا الرمز:

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج YOLO26n بصيغة PyTorch⁩
model = YOLO("yolo26n.pt")

# ⁨اختبر سرعة YOLO26n ودقته على مجموعة البيانات COCO128 بجميع تنسيقات التصدير⁩
results = model.benchmark(data="coco128.yaml", imgsz=640)

لاحظ أن نتائج الاختبارات المعيارية قد تختلف بحسب تكوين الأجهزة والبرامج الدقيق للنظام، وكذلك بحسب الحمل الحالي على النظام عند تشغيل الاختبارات. للحصول على نتائج موثوقة قدر الإمكان، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور، مثل data='coco.yaml' (5000 صورة تحقق).

أفضل الممارسات عند استخدام NVIDIA Jetson#

عند استخدام NVIDIA Jetson، يُستحسن اتباع بعض أفضل الممارسات لتمكين NVIDIA Jetson من تحقيق أقصى أداء عند تشغيل YOLO26.

  1. تفعيل وضع الطاقة القصوى

    يضمن تفعيل وضع الطاقة القصوى على Jetson تشغيل جميع أنوية CPU وGPU.

    sudo nvpmodel -m 0
  2. تفعيل ساعات Jetson

    يضمن تفعيل ساعات Jetson تشغيل جميع أنوية CPU وGPU بأقصى تردد لها.

    sudo jetson_clocks
  3. تثبيت تطبيق Jetson Stats

    يمكننا استخدام تطبيق jetson stats لمراقبة درجات حرارة مكونات النظام والتحقق من تفاصيل أخرى للنظام، مثل عرض استخدام CPU وGPU وRAM، وتغيير أوضاع الطاقة، وضبط الساعات على الحد الأقصى، والتحقق من معلومات JetPack.

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop
Jetson Stats

نصائح لتحسين استخدام الذاكرة على 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 reboot

2. تعطيل خدمات النظام غير المستخدمة#

تستهلك خدمات الخلفية غير الأساسية (Bluetooth ومديرو الاتصال وخدمات الأجهزة غير المستخدمة) نحو 32 MB مجتمعةً. اعرض الخدمات النشطة وعطّل كل ما لا يتطلبه النشر لديك:

# List running services
systemctl list-units --type=service --state=running

# Disable a service
sudo systemctl disable SERVICE_NAME

3. تحليل استخدام الذاكرة#

قبل التحسين، حدّد العمليات التي تستهلك 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/clients

4. تشغيل الاستدلال دون شاشة في بيئة الإنتاج#

في مسارات الاستدلال التي لا تتطلب معاينة مباشرة، يمكن أن يؤدي تعطيل المكونات المرتبطة بالعرض (Tiler وOSD وDisplaySink) إلى توفير 200+ MB من المسار وحده. عند استخدام Ultralytics YOLO، عطّل العارض واكتب النتائج على القرص بدلًا من ذلك:

مثال
from ultralytics import YOLO

model = YOLO("yolo26n.engine")

# ⁨يمنع show=False فتح أي نافذة عرض؛ ويكتب save=True المخرجات المشروحة على القرص⁩
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 عملية مباشرة. أولًا، ثبّت NVIDIA JetPack SDK على جهاز Jetson. ثم استخدم إما صورة 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، اتبع أفضل الممارسات التالية:

    1. فعّل وضع الطاقة القصوى للاستفادة من جميع أنوية CPU وGPU.
    2. فعّل ساعات Jetson لتشغيل جميع الأنوية بأقصى تردد لها.
    3. ثبّت تطبيق Jetson Stats لمراقبة مقاييس النظام.

    للاطلاع على الأوامر والتفاصيل الإضافية، راجع قسم أفضل الممارسات عند استخدام NVIDIA Jetson.

  • غالبًا ما تكون RAM المتاحة عنق الزجاجة في أجهزة Jetson ذات الذاكرة الأقل. إليك ثلاث خطوات سهلة يمكنها مجتمعةً تحرير أكثر من 1 GB:

    1. التبديل إلى الإقلاع دون واجهة رسومية (sudo systemctl set-default multi-user.target) للتخلص من واجهة سطح المكتب الرسومية (توفير ~865 MB).
    2. تعطيل الخدمات غير المستخدمة مثل Bluetooth أو مديري الاتصال (توفير ~32 MB).
    3. تشغيل الاستدلال دون شاشة عبر تعيين show=False في استدعاء YOLO predict، ما يجنب تخصيص ذاكرة لمسار العرض (توفير ~200+ MB).

    استخدم procrank لتحليل استخدام RAM لكل عملية، وsudo cat /sys/kernel/debug/nvmap/iovmm/clients لفحص تخصيصات GPU. راجع قسم نصائح تحسين الذاكرة للاطلاع على التفاصيل الكاملة.

  • يتضمن TensorRT 10.3.0 المرفق مع JetPack 6 مشكلة معروفة تمنع إنشاء محركات INT8 الخالية من NMS (nms=False). عندما تكتشف Ultralytics هذا التوافق، تختار تلقائيًا الرأس one-to-many لضمان نجاح التصدير.

    لاستعادة إمكانية تصدير 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.

التعليقات