رؤية YOLO 2026:

دليل البدء السريع: 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 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) المُسَرَّعَة إلى الأجهزة الطرفية. تُميَّز هذه الأجهزة المدمجة والقوية بأنها مبنية حول معمارية وحدة معالجة الرسومات من NVIDIA ويمكنها تشغيل خوارزميات الذكاء الاصطناعي المعقدة ونماذج التعلم العميق مباشرة على الجهاز، دون الاعتماد على موارد الحوسبة السحابية. غالباً ما تُستخدم لوحات Jetson في الروبوتات، والمركبات ذاتية القيادة، والأتمتة الصناعية، وتطبيقات أخرى حيث يحتاج استدلال الذكاء الاصطناعي إلى التنفيذ محلياً بزمن انتقال منخفض وكفاءة عالية. بالإضافة إلى ذلك، تعتمد هذه اللوحات على معمارية ARM64 وتعمل بطاقة أقل مقارنة بأجهزة حوسبة وحدات معالجة الرسومات التقليدية.

مقارنة سلسلة 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
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 نواة
أقصى تردد لـ GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
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 رباعي النواة
أقصى تردد لـ CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
الذاكرة128GB 256-bit LPDDR5X 273GB/s64GB 256-bit LPDDR5 204.8GB/s16GB 128-bit LPDDR5 102.4GB/s8GB 128-bit LPDDR5 102 GB/s32GB 256-bit LPDDR4x 136.5GB/s8GB 128-bit LPDDR4x 59.7GB/s4GB 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.

  1. بالنسبة لـ 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.
  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 لـ JetPack 7

تحتوي صورة 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.

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

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. تثبيت حزمة pip لـ ultralytics مع التبعيات الاختيارية

    pip install ultralytics[export]
  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#

حزمة 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.

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

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. تثبيت حزمة pip لـ ultralytics مع التبعيات الاختيارية

    pip install ultralytics[export]
  3. إعادة تشغيل الجهاز

    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.

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

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. تثبيت حزمة pip لـ ultralytics مع التبعيات الاختيارية

    pip install ultralytics[export]
  3. إعادة تشغيل الجهاز

    sudo reboot

تثبيت PyTorch وTorchvision#

سيؤدي تثبيت ultralytics أعلاه إلى تثبيت Torch و Torchvision. ومع ذلك، فإن هاتين الحزمتين المثبتتين عبر pip غير متوافقتين مع منصة Jetson، والتي تعتمد على بنية ARM64. لذلك، نحتاج إلى تثبيت حزمة PyTorch المجهزة مسبقًا عبر pip يدويًا وتجميع أو تثبيت 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#

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

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

TensorRT 11.0 و 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 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. بدلاً من ذلك، غرضه الأساسي هو زيادة الإنتاجية وتحسين كفاءة الطاقة.

معايير 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#

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

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

يمثل الجدول أدناه نتائج القياس لخمسة نماذج مختلفة (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)
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)#

الأداء
التنسيقالحالةالحجم على القرص (ميجابايت)mAP50-95(B)وقت الاستدلال (ms/im)
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#

الأداء
التنسيقالحالةالحجم على القرص (ميجابايت)mAP50-95(B)وقت الاستدلال (ms/im)
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#

الأداء
التنسيقالحالةالحجم على القرص (ميجابايت)mAP50-95(B)وقت الاستدلال (ms/im)
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 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.

  1. تمكين وضع الطاقة الأقصى (MAX Power Mode)

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

    sudo nvpmodel -m 0
  2. تمكين ساعات Jetson (Jetson Clocks)

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

    1. قم بتمكين وضع الطاقة الأقصى (MAX Power Mode) لاستخدام جميع أنوية CPU وGPU.
    2. قم بتمكين ساعات Jetson (Jetson Clocks) لتشغيل جميع الأنوية بأقصى تردد لها.
    3. قم بتثبيت تطبيق Jetson Stats لمراقبة مقاييس النظام.

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

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

    1. التبديل إلى الإقلاع بدون واجهة رسومية (sudo systemctl set-default multi-user.target) لإلغاء واجهة سطح المكتب الرسومية (وفّر حوالي 865 ميجابايت).
    2. تعطيل الخدمات غير المستخدمة مثل البلوتوث أو مديري الاتصال (~32 ميجابايت موفرة).
    3. تشغيل الاستدلال بدون شاشة عرض من خلال تعيين 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.

التعليقات