دليل البدء السريع: 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) الذي يعمل بأحدث إصدار مستقر من JetPack وهو JP7.0، وNVIDIA Jetson AGX Orin Developer Kit (64GB) الذي يعمل بإصدار JetPack JP6.2، وNVIDIA Jetson Orin Nano Super Developer Kit الذي يعمل بإصدار JetPack JP6.1، وSeeed Studio reComputer J4012 الذي يعتمد على NVIDIA Jetson Orin NX 16GB ويعمل بإصدار JetPack JP6.0 أو إصدار JetPack JP5.1.3، وSeeed Studio reComputer J1020 v2 الذي يعتمد على NVIDIA Jetson Nano 4GB ويعمل بإصدار JetPack JP4.6.1. من المتوقع أن يعمل على جميع أجهزة NVIDIA Jetson، بما في ذلك الأجهزة الحديثة والقديمة.
ما هو NVIDIA Jetson؟
NVIDIA Jetson عبارة عن سلسلة من لوحات الحوسبة المدمجة المصممة لجلب حوسبة الذكاء الاصطناعي (AI) المعجلة إلى أجهزة الحافة. تم بناء هذه الأجهزة المدمجة والقوية حول معمارية GPU الخاصة بـ NVIDIA ويمكنها تشغيل خوارزميات ذكاء اصطناعي معقدة ونماذج تعلم عميق مباشرة على الجهاز، دون الاعتماد على موارد الحوسبة السحابية. تُستخدم لوحات Jetson غالباً في الروبوتات، والمركبات ذاتية القيادة، والأتمتة الصناعية، والتطبيقات الأخرى التي تتطلب تنفيذ استدلال الذكاء الاصطناعي محلياً مع زمن انتقال منخفض وكفاءة عالية. بالإضافة إلى ذلك، تعتمد هذه اللوحات على معمارية ARM64 وتعمل بطاقة أقل مقارنة بأجهزة حوسبة GPU التقليدية.
مقارنة سلسلة NVIDIA Jetson
NVIDIA Jetson AGX Thor هو أحدث إصدار من عائلة NVIDIA Jetson المعتمد على معمارية NVIDIA Blackwell، والذي يوفر أداء ذكاء اصطناعي محسناً بشكل كبير مقارنة بالأجيال السابقة. يقارن الجدول أدناه بعض أجهزة Jetson الموجودة في النظام البيئي.
| Jetson AGX Thor(T5000) | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano Super | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano | |
|---|---|---|---|---|---|---|---|
| أداء الذكاء الاصطناعي | 2070 TFLOPS | 275 TOPS | 100 TOPS | 67 TOPS | 32 TOPS | 21 TOPS | 472 GFLOPS |
| GPU | وحدة معالجة رسومات NVIDIA Blackwell 2560-core مع 96 Tensor Cores | وحدة معالجة رسومات NVIDIA Ampere 2048-core مع 64 Tensor Cores | وحدة معالجة رسومات NVIDIA Ampere 1024-core مع 32 Tensor Cores | وحدة معالجة رسومات NVIDIA Ampere 1024-core مع 32 Tensor Cores | وحدة معالجة رسومات NVIDIA Volta 512-core مع 64 Tensor Cores | وحدة معالجة رسومات NVIDIA Volta™ 384-core مع 48 Tensor Cores | وحدة معالجة رسومات NVIDIA Maxwell™ 128-core |
| التردد الأقصى لـ 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، ومجموعة كاملة من المكتبات لتسريع حوسبة GPU، والوسائط المتعددة، والرسومات، ورؤية الحاسوب. كما يتضمن عينات ووثائق وأدوات تطوير لكل من الكمبيوتر المضيف ومجموعة التطوير، ويدعم حزم تطوير البرامج (SDKs) ذات المستوى الأعلى مثل DeepStream لتحليلات الفيديو المتدفقة، وIsaac للروبوتات، وRiva للذكاء الاصطناعي التحادثي.
تثبيت JetPack على NVIDIA Jetson
الخطوة الأولى بعد الحصول على جهاز NVIDIA Jetson هي تثبيت NVIDIA JetPack على الجهاز. توجد عدة طرق مختلفة لتثبيت البرامج على أجهزة NVIDIA Jetson.
- إذا كنت تمتلك مجموعة تطوير NVIDIA رسمية مثل Jetson AGX Thor Developer Kit، فيمكنك تنزيل صورة وإعداد وحدة USB قابلة للتمهيد لتثبيت JetPack على SSD المرفق.
- إذا كنت تمتلك مجموعة تطوير NVIDIA رسمية مثل Jetson Orin Nano Developer Kit، فيمكنك تنزيل صورة وإعداد بطاقة SD مع JetPack لتمهيد الجهاز.
- إذا كنت تمتلك أي مجموعة تطوير 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بعد القيام بذلك، انتقل إلى قسم استخدام TensorRT على NVIDIA Jetson.
البدء بالتثبيت الأصلي
للتثبيت الأصلي بدون Docker، يرجى الرجوع إلى الخطوات أدناه.
التشغيل على JetPack 7.0
تثبيت حزمة 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 AGX Thor الذي يأتي مع JetPack 7.0 وCUDA 13. لذلك، نحتاج إلى تثبيتهما يدوياً.
تثبيت torch وtorchvision وفقاً لـ JP7.0
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.whlonnxruntime-gpu سيقوم تلقائيًا بإعادة إصدار NumPy إلى الأحدث. لذا نحتاج إلى إعادة تثبيت NumPy إلى الإصدار 1.23.5 لإصلاح مشكلة ما عن طريق تنفيذ:
pip install numpy==1.23.5
استخدم TensorRT على NVIDIA Jetson
من بين جميع تنسيقات تصدير النماذج المدعومة من Ultralytics، يوفر TensorRT أعلى أداء للاستنتاج على أجهزة NVIDIA Jetson، مما يجعله توصيتنا الأولى لعمليات النشر على Jetson. للحصول على تعليمات الإعداد والاستخدام المتقدم، راجع دليل تكامل TensorRT المخصص.
تحويل النموذج إلى 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 (DLA) هو مكون أجهزة متخصص مدمج في أجهزة NVIDIA Jetson يعمل على تحسين استنتاج التعلم العميق من حيث كفاءة الطاقة والأداء. من خلال تفريغ المهام من وحدة معالجة الرسومات (GPU) (مما يحررها للعمليات الأكثر كثافة)، يتيح DLA للنماذج التشغيل باستهلاك أقل للطاقة مع الحفاظ على إنتاجية عالية، وهو مثالي للأنظمة المدمجة وتطبيقات الذكاء الاصطناعي في الوقت الفعلي.
أجهزة Jetson التالية مجهزة بأجهزة DLA:
| جهاز Jetson | أنوية DLA | التردد الأقصى لـ DLA |
|---|---|---|
| سلسلة Jetson AGX Orin | 2 | 1.6 جيجاهرتز |
| Jetson Orin NX 16GB | 2 | 614 ميجاهرتز |
| Jetson Orin NX 8GB | 1 | 614 ميجاهرتز |
| سلسلة Jetson AGX Xavier | 2 | 1.4 جيجاهرتز |
| سلسلة Jetson Xavier NX | 2 | 1.1 جيجاهرتز |
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", half=True) # 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 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 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
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 7.39 |
| TorchScript | ✅ | 9.8 | 0.4789 | 4.21 |
| ONNX | ✅ | 9.5 | 0.4767 | 6.58 |
| OpenVINO | ✅ | 10.1 | 0.4794 | 17.50 |
| TensorRT (FP32) | ✅ | 13.9 | 0.4791 | 1.90 |
| TensorRT (FP16) | ✅ | 7.6 | 0.4797 | 1.39 |
| TensorRT (INT8) | ✅ | 6.5 | 0.4273 | 1.52 |
| TF SavedModel | ✅ | 25.7 | 0.4764 | 47.24 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 45.98 |
| TF Lite | ✅ | 9.9 | 0.4764 | 182.04 |
| MNN | ✅ | 9.4 | 0.4784 | 21.83 |
تم إجراء الاختبار المرجعي باستخدام Ultralytics 8.4.7
وقت الاستنتاج لا يتضمن المعالجة الأولية/اللاحقة.
NVIDIA Jetson AGX Orin Developer Kit (64GB)
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4790 | 11.58 |
| TorchScript | ✅ | 9.8 | 0.4770 | 4.60 |
| ONNX | ✅ | 9.5 | 0.4770 | 9.87 |
| OpenVINO | ✅ | 9.6 | 0.4820 | 28.80 |
| TensorRT (FP32) | ✅ | 11.5 | 0.0450 | 4.18 |
| TensorRT (FP16) | ✅ | 7.9 | 0.0450 | 2.62 |
| TensorRT (INT8) | ✅ | 5.4 | 0.4640 | 2.30 |
| TF SavedModel | ✅ | 24.6 | 0.4760 | 71.10 |
| TF GraphDef | ✅ | 9.5 | 0.4760 | 70.02 |
| TF Lite | ✅ | 9.9 | 0.4760 | 227.94 |
| MNN | ✅ | 9.4 | 0.4760 | 32.46 |
| NCNN | ✅ | 9.3 | 0.4810 | 29.93 |
تمت المعايرة باستخدام Ultralytics 8.4.32
وقت الاستنتاج لا يتضمن المعالجة الأولية/اللاحقة.
NVIDIA Jetson Orin Nano Super Developer Kit
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4790 | 15.60 |
| TorchScript | ✅ | 9.8 | 0.4770 | 12.60 |
| ONNX | ✅ | 9.5 | 0.4760 | 15.76 |
| OpenVINO | ✅ | 9.6 | 0.4820 | 56.23 |
| TensorRT (FP32) | ✅ | 11.3 | 0.4770 | 7.53 |
| TensorRT (FP16) | ✅ | 8.1 | 0.4800 | 4.57 |
| TensorRT (INT8) | ✅ | 5.3 | 0.4490 | 3.80 |
| TF SavedModel | ✅ | 24.6 | 0.4760 | 118.33 |
| TF GraphDef | ✅ | 9.5 | 0.4760 | 116.30 |
| TF Lite | ✅ | 9.9 | 0.4760 | 286.00 |
| MNN | ✅ | 9.4 | 0.4760 | 68.77 |
| NCNN | ✅ | 9.3 | 0.4810 | 47.50 |
تم إجراء الاختبار باستخدام Ultralytics 8.4.33
وقت الاستنتاج لا يتضمن المعالجة الأولية/اللاحقة.
NVIDIA Jetson Orin NX 16GB
| التنسيق | الحالة | الحجم على القرص (MB) | mAP50-95(B) | وقت الاستنتاج (مللي ثانية/صورة) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4799 | 13.90 |
| TorchScript | ✅ | 9.8 | 0.4787 | 11.60 |
| ONNX | ✅ | 9.5 | 0.4763 | 14.18 |
| OpenVINO | ✅ | 9.6 | 0.4819 | 40.19 |
| TensorRT (FP32) | ✅ | 11.4 | 0.4770 | 7.01 |
| TensorRT (FP16) | ✅ | 8.0 | 0.4789 | 4.13 |
| TensorRT (INT8) | ✅ | 5.5 | 0.4489 | 3.49 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 92.34 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 92.06 |
| TF Lite | ✅ | 9.9 | 0.4764 | 254.43 |
| MNN | ✅ | 9.4 | 0.4760 | 48.55 |
| NCNN | ✅ | 9.3 | 0.4805 | 34.31 |
تم إجراء الاختبار باستخدام Ultralytics 8.4.33
وقت الاستنتاج لا يتضمن المعالجة الأولية/اللاحقة.
استكشف المزيد من جهود قياس الأداء من Seeed Studio التي تعمل على إصدارات مختلفة من أجهزة NVIDIA Jetson.
إعادة إنتاج نتائجنا
لإعادة إنتاج مقاييس أداء Ultralytics المذكورة أعلاه على جميع تنسيقات التصدير، قم بتشغيل هذا الكود:
from ultralytics import YOLO
# Load a 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 (Jetson Stats)
يمكننا استخدام تطبيق إحصائيات Jetson لمراقبة درجات حرارة مكونات النظام والتحقق من تفاصيل النظام الأخرى مثل عرض استخدام 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 حول زيادة كفاءة الذاكرة لتشغيل نماذج أكبر على NVIDIA Jetson.
التبديل إلى التمهيد بدون واجهة رسومية (Headless)
إذا كان جهاز 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>تحليل استخدام الذاكرة
قبل التحسين، حدد العمليات التي تستهلك ذاكرة الوصول العشوائي بالفعل. يقوم procrank بفرز العمليات حسب PSS (Proportional Set Size)، وهو ما يعكس البصمة الحقيقية للذاكرة لكل عملية بشكل أدق من RSS (Resident Set Size، وهو إجمالي صفحات ذاكرة الوصول العشوائي المادية المعينة بواسطة عملية، بما في ذلك الصفحات المشتركة مع عمليات أخرى):
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 ميجابايت |
| تعطيل خدمات نظام التشغيل غير المستخدمة | ~32 ميجابايت |
| خط أنابيب استدلال بدون رأس (بدون شاشة) | ~200+ ميجابايت |
| الإجمالي (مكاسب سهلة) | ~1 جيجابايت+ |
يعد الجمع بين هذه التغييرات ذا قيمة خاصة عند استهداف نماذج TensorRT INT8 على الأجهزة المحدودة الذاكرة - يمكن أن يكون الفرق بين احتواء متغير نموذج أكبر في الذاكرة أو عدمه.
الخطوات التالية
لمزيد من التعلم والدعم، راجع وثائق Ultralytics YOLO26.
الأسئلة الشائعة
كيف يمكنني نشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson؟
نشر Ultralytics YOLO26 على أجهزة NVIDIA Jetson هو عملية مباشرة. أولاً، قم بتثبيت NVIDIA JetPack SDK على جهاز Jetson الخاص بك. ثم، استخدم إما صورة Docker جاهزة للإعداد السريع أو قم بتثبيت الحزم المطلوبة يدوياً. يمكن العثور على خطوات مفصلة لكل نهج في أقسام البدء السريع باستخدام Docker و البدء بالتثبيت الأصلي.
ما هي مقاييس الأداء التي يمكنني توقعها من نماذج YOLO11 على أجهزة NVIDIA Jetson؟
تم قياس أداء نماذج YOLO11 على العديد من أجهزة NVIDIA Jetson مما يظهر تحسينات كبيرة في الأداء. على سبيل المثال، يوفر تنسيق TensorRT أفضل أداء للاستدلال. يوفر الجدول في قسم جداول المقارنة التفصيلية رؤية شاملة لمقاييس الأداء مثل mAP50-95 ووقت الاستدلال عبر تنسيقات النماذج المختلفة.
لماذا يجب أن أستخدم TensorRT لنشر YOLO26 على NVIDIA Jetson؟
يوصى بشدة باستخدام TensorRT لنشر نماذج YOLO26 على NVIDIA Jetson نظراً لأدائه الأمثل. فهو يسرع الاستدلال من خلال الاستفادة من قدرات GPU الخاصة بـ Jetson، مما يضمن أقصى قدر من الكفاءة والسرعة. تعرف على المزيد حول كيفية التحويل إلى TensorRT وتشغيل الاستدلال في قسم استخدام TensorRT على NVIDIA Jetson.
كيف يمكنني تثبيت PyTorch و Torchvision على NVIDIA Jetson؟
لتثبيت PyTorch و Torchvision على NVIDIA Jetson، قم أولاً بإلغاء تثبيت أي إصدارات موجودة ربما تم تثبيتها عبر pip. ثم، قم بتثبيت إصدارات PyTorch و Torchvision المتوافقة يدوياً لهندسة ARM64 الخاصة بـ Jetson. يتم توفير تعليمات مفصلة لهذه العملية في قسم تثبيت PyTorch و Torchvision.
ما هي أفضل الممارسات لزيادة الأداء على NVIDIA Jetson عند استخدام YOLO26؟
لزيادة الأداء على NVIDIA Jetson باستخدام YOLO26، اتبع أفضل الممارسات التالية:
- تمكين وضع الطاقة الأقصى (MAX Power Mode) لاستخدام جميع أنوية CPU و GPU.
- تمكين ساعات Jetson (Jetson Clocks) لتشغيل جميع الأنوية بأقصى تردد لها.
- تثبيت تطبيق إحصائيات Jetson (Jetson Stats) لمراقبة مقاييس النظام.
للأوامر والتفاصيل الإضافية، راجع قسم أفضل الممارسات عند استخدام NVIDIA Jetson.
كيف يمكنني تحرير الذاكرة على NVIDIA Jetson لتشغيل نماذج YOLO أكبر؟
غالباً ما تكون ذاكرة الوصول العشوائي المتاحة هي عنق الزجاجة على أجهزة Jetson ذات الذاكرة الأقل. ثلاث مكاسب سهلة يمكنها معاً استعادة أكثر من 1 جيجابايت:
- التبديل إلى التمهيد بدون واجهة رسومية (
sudo systemctl set-default multi-user.target) للتخلص من واجهة سطح المكتب الرسومية (توفير ~865 ميجابايت). - تعطيل الخدمات غير المستخدمة مثل Bluetooth أو مديري الاتصال (توفير ~32 ميجابايت).
- تشغيل الاستدلال بدون شاشة عن طريق ضبط
show=Falseفي استدعاءpredictالخاص بـ YOLO، مما يتجنب تخصيص ذاكرة خط أنابيب العرض (توفير ~200+ ميجابايت).
استخدم procrank لتحليل استخدام ذاكرة الوصول العشوائي لكل عملية و sudo cat /sys/kernel/debug/nvmap/iovmm/clients لفحص مخصصات GPU. راجع قسم نصائح تحسين الذاكرة للحصول على التفاصيل الكاملة.
لماذا يعطل تصدير TensorRT INT8 خاصية end2end على JetPack 6؟
يحتوي 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.