Ultralytics YOLO27:

دليل البدء السريع: 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 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/ إصدار 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 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 نواة، و1MB ‏L2‏ + ‏16MB ‏L3CPU ‏NVIDIA Arm® Cortex A78AE v8.2‏ ‏64-bit‏ بـ12 نواة، و3MB ‏L2‏ + ‏6MB ‏L3CPU ‏NVIDIA Arm® Cortex A78AE v8.2‏ ‏64-bit‏ بـ8 نوى، و2MB ‏L2‏ + ‏4MB ‏L3CPU ‏Arm® Cortex®-A78AE v8.2‏ ‏64-bit‏ بـ6 أنوية، و1.5MB ‏L2‏ + ‏4MB ‏L3CPU ‏NVIDIA Carmel Arm®v8.2‏ ‏64-bit‏ بـ8 أنوية، و8MB ‏L2‏ + ‏4MB ‏L3CPU ‏NVIDIA Carmel Arm®v8.2‏ ‏64-bit‏ بـ6 أنوية، و6MB ‏L2‏ + ‏4MB ‏L3معالج Quad-Core 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

للاطلاع على جدول مقارنة أكثر تفصيلًا، يُرجى زيارة قسم 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.

  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 قابلة للتنزيل؛ إذ يثبّت USB ISO نظام Jetson Linux على بطاقة microSD أو وحدة تخزين NVMe SSD الخاصة بالجهاز.
  2. إذا كنت تستخدم JetPack 6 عمدًا على حزمة تطوير Jetson Orin Nano، فاتبع تعليمات NVIDIA لتحديث JetPack 6.x وبطاقة SD.
  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
دعم JetPack 7 لـ Docker و TensorRT

تستخدم صورة 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.

  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 المتوافقة مع إصدارات 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.

  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 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.

  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 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 خاصة بالجهاز

ينشئ 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 تشغيل النماذج باستهلاك طاقة أقل مع الحفاظ على معدل نقل مرتفع، ما يجعله مثاليًا للأنظمة المضمّنة وتطبيقات الذكاء الاصطناعي في الوقت الفعلي.

توافق TensorRT و 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 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

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

Jetson AGX Thor Benchmarks
Benchmarked with Ultralytics 8.3.226

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Jetson AGX Orin Benchmarks
Benchmarked with Ultralytics 8.4.32

NVIDIA Jetson Orin Nano Super Developer Kit#

Jetson Orin Nano Super Benchmarks
Benchmarked with Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Benchmarked with 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 Developer Kit#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)زمن الاستدلال (مللي ثانية/صورة)
PyTorch5.30.47987.39
TorchScript9.80.47894.21
ONNX9.50.47676.58
OpenVINO10.10.479417.50
TensorRT (FP32)13.90.47911.90
TensorRT (FP16)7.60.47971.39
TensorRT (INT8)6.50.42731.52
TF SavedModel25.70.476447.24
TF GraphDef9.50.476445.98
TF Lite9.90.4764182.04
MNN9.40.478421.83

تم إجراء المعايير باستخدام Ultralytics 8.4.7

ملاحظة

لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)زمن الاستدلال (مللي ثانية/صورة)
PyTorch5.30.479011.58
TorchScript9.80.47704.60
ONNX9.50.47709.87
OpenVINO9.60.482028.80
TensorRT (FP32)11.50.04504.18
TensorRT (FP16)7.90.04502.62
TensorRT (INT8)5.40.46402.30
TF SavedModel24.60.476071.10
TF GraphDef9.50.476070.02
TF Lite9.90.4760227.94
MNN9.40.476032.46
NCNN9.30.481029.93

تم إجراء المعايير باستخدام Ultralytics 8.4.32

ملاحظة

لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.

NVIDIA Jetson Orin Nano Super Developer Kit#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)زمن الاستدلال (مللي ثانية/صورة)
PyTorch5.30.479015.60
TorchScript9.80.477012.60
ONNX9.50.476015.76
OpenVINO9.60.482056.23
TensorRT (FP32)11.30.47707.53
TensorRT (FP16)8.10.48004.57
TensorRT (INT8)5.30.44903.80
TF SavedModel24.60.4760118.33
TF GraphDef9.50.4760116.30
TF Lite9.90.4760286.00
MNN9.40.476068.77
NCNN9.30.481047.50

تم إجراء المعايير باستخدام Ultralytics 8.4.33

ملاحظة

لا يشمل زمن الاستدلال المعالجة المسبقة/اللاحقة.

NVIDIA Jetson Orin NX 16GB#

الأداء
التنسيقالحالةالحجم على القرص (MB)mAP50-95(B)زمن الاستدلال (مللي ثانية/صورة)
PyTorch5.30.479913.90
TorchScript9.80.478711.60
ONNX9.50.476314.18
OpenVINO9.60.481940.19
TensorRT (FP32)11.40.47707.01
TensorRT (FP16)8.00.47894.13
TensorRT (INT8)5.50.44893.49
TF SavedModel24.60.476492.34
TF GraphDef9.50.476492.06
TF Lite9.90.4764254.43
MNN9.40.476048.55
NCNN9.30.480534.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.

  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 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، اتبع أفضل الممارسات التالية:

    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=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.

التعليقات