Hướng dẫn bắt đầu nhanh: NVIDIA Jetson với Ultralytics YOLO26#
Hướng dẫn toàn diện này trình bày chi tiết cách triển khai Ultralytics YOLO26 trên các thiết bị NVIDIA Jetson. Ngoài ra, hướng dẫn còn giới thiệu các benchmark hiệu năng để minh họa khả năng của YOLO26 trên những thiết bị nhỏ gọn và mạnh mẽ này.
Chúng tôi đã cập nhật hướng dẫn này với NVIDIA Jetson AGX Thor Developer Kit mới nhất, cung cấp hiệu năng tính toán AI lên đến 2070 FP4 TFLOPS và bộ nhớ 128 GB, với công suất có thể cấu hình trong khoảng 40 W đến 130 W. Thiết bị này cung cấp hiệu năng tính toán AI cao hơn 7,5 lần so với NVIDIA Jetson AGX Orin, đồng thời đạt hiệu quả năng lượng tốt hơn 3,5 lần, giúp chạy liền mạch các model AI phổ biến nhất.
Xem: Cách sử dụng Ultralytics YOLO26 trên thiết bị NVIDIA Jetson

Hướng dẫn này đã được kiểm thử với NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000) và NVIDIA Jetson AGX Orin Developer Kit (64GB) chạy bản JetPack 7.2 ổn định mới nhất, NVIDIA Jetson Orin Nano Super Developer Kit chạy bản phát hành JetPack JP6.1, Seeed Studio reComputer J4012 dựa trên NVIDIA Jetson Orin NX 16GB chạy bản phát hành JetPack JP6.0/ JP5.1.3, và Seeed Studio reComputer J1020 v2 dựa trên NVIDIA Jetson Nano 4GB chạy bản phát hành JetPack JP4.6.1. Dự kiến hướng dẫn này sẽ hoạt động trên toàn bộ dòng phần cứng NVIDIA Jetson, bao gồm cả thiết bị mới nhất và các thiết bị đời cũ.
NVIDIA Jetson là gì?#
NVIDIA Jetson là dòng bo mạch tính toán nhúng được thiết kế để mang khả năng tính toán AI (trí tuệ nhân tạo) tăng tốc đến các thiết bị edge. Những thiết bị nhỏ gọn và mạnh mẽ này được xây dựng trên kiến trúc GPU của NVIDIA, có thể chạy các thuật toán AI phức tạp và model deep learning trực tiếp trên thiết bị mà không cần phụ thuộc vào tài nguyên điện toán đám mây. Bo mạch Jetson thường được sử dụng trong robot, xe tự hành, tự động hóa công nghiệp và các ứng dụng khác cần thực hiện inference AI cục bộ với độ trễ thấp và hiệu suất cao. Ngoài ra, các bo mạch này dựa trên kiến trúc ARM64 và tiêu thụ ít điện năng hơn so với các thiết bị tính toán GPU truyền thống.
So sánh các dòng NVIDIA Jetson#
NVIDIA Jetson AGX Thor là phiên bản mới nhất trong dòng NVIDIA Jetson, dựa trên kiến trúc NVIDIA Blackwell, mang lại hiệu năng AI được cải thiện đáng kể so với các thế hệ trước. Bảng bên dưới so sánh một số thiết bị Jetson trong hệ sinh thái.
| Jetson AGX Thor (T5000) | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano Super | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano | |
|---|---|---|---|---|---|---|---|
| Hiệu năng AI | 2070 TFLOPS | 275 TOPS | 100 TOPS | 67 TOPS | 32 TOPS | 21 TOPS | 472 GFLOPS |
| GPU | GPU kiến trúc NVIDIA Blackwell với 2560 lõi và 96 Tensor Core | GPU kiến trúc NVIDIA Ampere với 2048 lõi và 64 Tensor Core | GPU kiến trúc NVIDIA Ampere với 1024 lõi và 32 Tensor Core | GPU kiến trúc NVIDIA Ampere với 1024 lõi và 32 Tensor Core | GPU kiến trúc NVIDIA Volta với 512 lõi và 64 Tensor Core | GPU kiến trúc NVIDIA Volta™ với 384 lõi và 48 Tensor Core | GPU kiến trúc NVIDIA Maxwell™ với 128 lõi |
| Tần số tối đa của GPU | 1.57 GHz | 1.3 GHz | 918 MHz | 1020 MHz | 1377 MHz | 1100 MHz | 921MHz |
| CPU | CPU Arm® Neoverse®-V3AE 64-bit 14 lõi, 1MB L2 + 16MB L3 | CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit 12 lõi, 3MB L2 + 6MB L3 | CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit 8 lõi, 2MB L2 + 4MB L3 | CPU Arm® Cortex®-A78AE v8.2 64-bit 6 lõi, L2 1.5MB + L3 4MB | CPU NVIDIA Carmel Arm®v8.2 64-bit 8 lõi, L2 8MB + L3 4MB | CPU NVIDIA Carmel Arm®v8.2 64-bit 6 lõi, L2 6MB + L3 4MB | Bộ xử lý Quad-Core Arm® Cortex®-A57 MPCore |
| Tần số tối đa của CPU | 2.6 GHz | 2.2 GHz | 2.0 GHz | 1.7 GHz | 2.2 GHz | 1.9 GHz | 1.43GHz |
| Bộ nhớ | 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 |
Để xem bảng so sánh chi tiết hơn, hãy truy cập mục So sánh thông số kỹ thuật trên trang NVIDIA Jetson chính thức.
NVIDIA JetPack là gì?#
NVIDIA JetPack SDK cung cấp nền tảng cho các module Jetson, là giải pháp toàn diện nhất và cung cấp môi trường phát triển đầy đủ để xây dựng các ứng dụng AI tăng tốc từ đầu đến cuối, đồng thời rút ngắn thời gian đưa sản phẩm ra thị trường. JetPack bao gồm Jetson Linux với bootloader, nhân Linux, môi trường desktop Ubuntu và bộ thư viện hoàn chỉnh để tăng tốc điện toán GPU, đa phương tiện, đồ họa và thị giác máy tính. JetPack cũng bao gồm các mẫu, tài liệu và công cụ dành cho nhà phát triển trên cả máy tính chủ lẫn bộ công cụ phát triển, đồng thời hỗ trợ các SDK cấp cao hơn như DeepStream cho phân tích video trực tuyến, Isaac cho robotics và Riva cho AI hội thoại.
Flash JetPack lên NVIDIA Jetson#
Bước đầu tiên sau khi có thiết bị NVIDIA Jetson là flash NVIDIA JetPack lên thiết bị. Có một số cách khác nhau để flash thiết bị NVIDIA Jetson.
- Đối với JetPack 7.2 trên bộ công cụ phát triển AGX Thor, AGX Orin hoặc Orin Nano chính thức, hãy tải ISO Jetson hợp nhất, ghi ISO vào USB flash và làm theo hướng dẫn bắt đầu nhanh dành riêng cho thiết bị AGX Thor, AGX Orin hoặc Orin Nano. Kể từ JetPack 7.2, Orin Nano không còn sử dụng image thẻ SD có thể tải xuống; quá trình cài đặt bằng ISO trên USB sẽ cài Jetson Linux vào thẻ microSD hoặc SSD NVMe của thiết bị.
- Nếu bạn chủ động sử dụng JetPack 6 trên bộ công cụ phát triển Jetson Orin Nano, hãy làm theo hướng dẫn cập nhật JetPack 6.x và sử dụng thẻ SD của NVIDIA.
- Nếu sở hữu bộ công cụ phát triển NVIDIA khác, bạn có thể flash JetPack lên thiết bị bằng SDK Manager.
- Nếu sở hữu thiết bị Seeed Studio reComputer J4012, bạn có thể flash JetPack lên SSD đi kèm; nếu sở hữu thiết bị Seeed Studio reComputer J1020 v2, bạn có thể flash JetPack lên eMMC/ SSD.
- Nếu sở hữu thiết bị bên thứ ba khác được trang bị module NVIDIA Jetson, bạn nên làm theo hướng dẫn flash qua dòng lệnh.
Đối với phương pháp 1, 4 và 5 ở trên, sau khi flash hệ thống và khởi động thiết bị, hãy nhập "sudo apt update && sudo apt install nvidia-jetpack -y" trong terminal trên thiết bị để cài đặt các thành phần JetPack còn lại cần thiết.
Hỗ trợ JetPack theo thiết bị Jetson#
Bảng dưới đây nêu các phiên bản NVIDIA JetPack được hỗ trợ trên từng thiết bị 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 | ❌ | ❌ | ❌ | ✅ |
Bắt đầu nhanh với Docker#
Cách nhanh nhất để bắt đầu sử dụng Ultralytics YOLO26 trên NVIDIA Jetson là chạy các Docker image dựng sẵn cho Jetson. Tham khảo bảng trên và chọn phiên bản JetPack phù hợp với thiết bị Jetson bạn đang sử dụng.
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $tImage latest-nvidia-arm64 sử dụng NVIDIA PyTorch 26.08, bao gồm CUDA 13.4 và TensorRT 11.2. NVIDIA liệt kê JetPack 7.1 cho PyTorch trong bảng tương thích, nhưng TensorRT 11.2.1 không hỗ trợ JetPack, bao gồm cả Thor. Chỉ sử dụng image này cho workload PyTorch trên host được hỗ trợ. Để export TensorRT trên Jetson, hãy sử dụng phương pháp cài đặt gốc bên dưới với runtime TensorRT 10.x được phiên bản JetPack của bạn hỗ trợ. Cần xác thực riêng container JetPack 7.2 trên Thor hoặc Orin. Hãy dựng lại engine cho GPU và phiên bản TensorRT mục tiêu.
Đối với image JetPack 4, 5 và 6, hãy tiếp tục xem Sử dụng TensorRT trên NVIDIA Jetson. Image JetPack 7.1 ở trên chỉ dành cho workload PyTorch.
Bắt đầu với cài đặt gốc#
Để cài đặt gốc mà không dùng Docker, hãy tham khảo các bước dưới đây.
Chạy trên JetPack 7.2#
Cài đặt package Ultralytics#
Ở đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency phục vụ quá trình export sẽ được cài tự động trong lần đầu tiên bạn export model, vì vậy tại đây chỉ cần cài package cơ bản. Chúng ta sẽ tập trung chủ yếu vào export NVIDIA TensorRT vì TensorRT giúp khai thác hiệu năng tối đa từ thiết bị Jetson.
-
Cập nhật danh sách package, cài đặt pip và nâng cấp lên phiên bản mới nhất
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Cài đặt package pip
ultralyticspip install ultralytics -
Khởi động lại thiết bị
sudo reboot
Cài đặt PyTorch và Torchvision#
Quá trình cài đặt ultralytics ở trên sẽ cài Torch và Torchvision. Tuy nhiên, hai package được cài qua pip này không tương thích để chạy trên thiết bị JetPack 7.2 với CUDA 13. Vì vậy, chúng ta cần cài đặt thủ công.
Cài đặt torch và torchvision phù hợp với JP7.2
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130Cài đặt onnxruntime-gpu#
Sử dụng wheel ONNX Runtime GPU tương thích với các phiên bản JetPack, Python và CUDA của bạn. Các bản phát hành PyPI hiện tại có wheel ARM64, nhưng không thể thay thế các package dành riêng cho thiết bị ở mọi phiên bản JetPack.
Ở đây, chúng ta sẽ tải xuống và cài đặt onnxruntime-gpu 1.24.0 có hỗ trợ Python3.12.
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whlChạy trên JetPack 6.1#
Cài đặt package Ultralytics#
Ở đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency phục vụ quá trình export sẽ được cài tự động trong lần đầu tiên bạn export model, vì vậy tại đây chỉ cần cài package cơ bản. Chúng ta sẽ tập trung chủ yếu vào export NVIDIA TensorRT vì TensorRT giúp khai thác hiệu năng tối đa từ thiết bị Jetson.
-
Cập nhật danh sách package, cài đặt pip và nâng cấp lên phiên bản mới nhất
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Cài đặt package pip
ultralyticspip install ultralytics -
Khởi động lại thiết bị
sudo reboot
Cài đặt PyTorch và Torchvision#
Quá trình cài đặt ultralytics ở trên sẽ cài Torch và Torchvision. Tuy nhiên, hai package này được cài qua pip không tương thích với nền tảng Jetson dựa trên kiến trúc ARM64. Vì vậy, chúng ta cần cài thủ công wheel pip PyTorch dựng sẵn và biên dịch hoặc cài Torchvision từ mã nguồn.
Cài đặt torch 2.10.0 và torchvision 0.25.0 phù hợp với 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.whlTruy cập trang PyTorch cho Jetson để xem tất cả phiên bản PyTorch dành cho từng phiên bản JetPack. Để xem danh sách chi tiết hơn về khả năng tương thích giữa PyTorch và Torchvision, hãy truy cập trang tương thích PyTorch và Torchvision.
Cài đặt cuDSS để khắc phục sự cố dependency với 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 cudssCài đặt onnxruntime-gpu#
Sử dụng wheel ONNX Runtime GPU tương thích với các phiên bản JetPack, Python và CUDA của bạn. Các bản phát hành PyPI hiện tại có wheel ARM64, nhưng không thể thay thế các package dành riêng cho thiết bị ở mọi phiên bản JetPack.
Bạn có thể tìm thấy tất cả package onnxruntime-gpu hiện có — được sắp xếp theo phiên bản JetPack, phiên bản Python và các chi tiết tương thích khác — trong ma trận tương thích ONNX Runtime của Jetson Zoo.
Đối với JetPack 6 có hỗ trợ Python 3.10, bạn có thể cài đặt 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.whlNgoài ra, đối với 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.whlChạy trên JetPack 5.1.2#
Cài đặt package Ultralytics#
Ở đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency phục vụ quá trình export sẽ được cài tự động trong lần đầu tiên bạn export model, vì vậy tại đây chỉ cần cài package cơ bản. Chúng ta sẽ tập trung chủ yếu vào export NVIDIA TensorRT vì TensorRT giúp khai thác hiệu năng tối đa từ thiết bị Jetson.
-
Cập nhật danh sách package, cài đặt pip và nâng cấp lên phiên bản mới nhất
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Cài đặt package pip
ultralyticspip install ultralytics -
Khởi động lại thiết bị
sudo reboot
Cài đặt PyTorch và Torchvision#
Quá trình cài đặt ultralytics ở trên sẽ cài Torch và Torchvision. Tuy nhiên, hai package này được cài qua pip không tương thích với nền tảng Jetson dựa trên kiến trúc ARM64. Vì vậy, chúng ta cần cài thủ công wheel pip PyTorch dựng sẵn và biên dịch hoặc cài Torchvision từ mã nguồn.
-
Gỡ cài đặt PyTorch và Torchvision hiện có
pip uninstall torch torchvision -
Cài đặt
torch 2.1.0vàtorchvision 0.16.2phù hợp với 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
Truy cập trang PyTorch cho Jetson để xem tất cả phiên bản PyTorch dành cho từng phiên bản JetPack. Để xem danh sách chi tiết hơn về khả năng tương thích giữa PyTorch và Torchvision, hãy truy cập trang tương thích PyTorch và Torchvision.
Cài đặt onnxruntime-gpu#
Sử dụng wheel ONNX Runtime GPU tương thích với các phiên bản JetPack, Python và CUDA của bạn. Các bản phát hành PyPI hiện tại có wheel ARM64, nhưng không thể thay thế các package dành riêng cho thiết bị ở mọi phiên bản JetPack.
Bạn có thể tìm thấy tất cả package onnxruntime-gpu hiện có — được sắp xếp theo phiên bản JetPack, phiên bản Python và các chi tiết tương thích khác — trong ma trận tương thích ONNX Runtime của Jetson Zoo. Ở đây, chúng ta sẽ tải xuống và cài đặt onnxruntime-gpu 1.17.0 có hỗ trợ 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 sẽ tự động khôi phục NumPy về phiên bản mới nhất. Vì vậy, chúng ta cần cài lại NumPy phiên bản 1.23.5 để khắc phục sự cố bằng cách chạy:
pip install numpy==1.23.5
Sử dụng TensorRT trên NVIDIA Jetson#
Trong số các định dạng export model được Ultralytics hỗ trợ, TensorRT mang lại hiệu năng inference cao nhất trên thiết bị NVIDIA Jetson, nên đây là lựa chọn hàng đầu của chúng tôi cho các triển khai trên Jetson. Trước khi export, hãy cài đặt các Python binding TensorRT được cung cấp cho phiên bản JetPack của bạn và xác minh bằng python3 -c "import tensorrt; print(tensorrt.__version__)". Hãy sử dụng runtime TensorRT 10.x được hỗ trợ trên JetPack 6/7; không thay thế runtime này bằng TensorRT 11.2.1. Để xem hướng dẫn thiết lập và cách sử dụng nâng cao, hãy tham khảo hướng dẫn tích hợp TensorRT chuyên biệt của chúng tôi.
Bạn cũng có thể export ngay trên trình duyệt mà không cần cấu hình môi trường build cục bộ. Trong tab Export model của Ultralytics Platform, hãy chọn TensorRT và thiết bị Jetson mục tiêu. Các lựa chọn Thor được xác thực trên phần cứng Thor thực tế. Sáu lựa chọn Orin hiện tạo ra các engine ứng viên được build cho AGX-Orin; hãy xác thực các engine này trên SKU Orin dự kiến trước khi triển khai.
TensorRT tối ưu hóa và tinh chỉnh engine trên GPU dùng để build. Hãy chọn kiến trúc GPU và runtime TensorRT/CUDA phù hợp với thiết bị mục tiêu, đồng thời xác thực mọi engine đã tải xuống trên thiết bị triển khai. Các SKU Orin có cùng kiến trúc không đảm bảo tự động tương thích, và để có kết quả tốt nhất, nên thực hiện hiệu chuẩn INT8 trên thiết bị mục tiêu.
Chuyển đổi model sang TensorRT và chạy inference#
Model YOLO26n ở định dạng PyTorch được chuyển đổi sang TensorRT để chạy inference bằng model đã export.
from ultralytics import YOLO
# Tải model YOLO26n PyTorch
model = YOLO("yolo26n.pt")
# Export model sang TensorRT
model.export(format="engine") # # tạo 'yolo26n.engine'
# Tải model TensorRT đã export
trt_model = YOLO("yolo26n.engine")
# Chạy suy luận
results = trt_model("https://ultralytics.com/images/bus.jpg")Truy cập trang Export để xem các tham số bổ sung khi export model sang những định dạng model khác nhau
Sử dụng NVIDIA Deep Learning Accelerator (DLA)#
NVIDIA Deep Learning Accelerator (DLA) là thành phần phần cứng chuyên dụng được tích hợp trong thiết bị NVIDIA Jetson, giúp tối ưu inference deep learning về hiệu quả năng lượng và hiệu năng. Bằng cách chuyển tác vụ khỏi GPU (giải phóng GPU cho các quy trình chuyên sâu hơn), DLA cho phép model chạy với mức tiêu thụ điện năng thấp hơn mà vẫn duy trì thông lượng cao, phù hợp với các hệ thống nhúng và ứng dụng AI thời gian thực.
NVIDIA cho biết TensorRT 10.7 là phiên bản cuối cùng có hỗ trợ DLA; TensorRT 11.0, 11.1 và 11.2 không hỗ trợ DLA. Hãy sử dụng phiên bản TensorRT có hỗ trợ DLA và được phiên bản JetPack của bạn hỗ trợ. TensorRT 11.2.1 không hỗ trợ JetPack, kể cả các export chỉ dùng GPU.
Các thiết bị Jetson sau đây được trang bị phần cứng DLA:
| Thiết bị Jetson | Số lõi DLA | Tần số tối đa của DLA |
|---|---|---|
| Dòng Jetson AGX Orin | 2 | 1.6 GHz |
| Jetson Orin NX 16GB | 2 | 614 MHz |
| Jetson Orin NX 8GB | 1 | 614 MHz |
| Dòng Jetson AGX Xavier | 2 | 1.4 GHz |
| Dòng Jetson Xavier NX | 2 | 1.1 GHz |
from ultralytics import YOLO
# Tải model YOLO26n PyTorch
model = YOLO("yolo26n.pt")
# Export model sang TensorRT khi bật DLA (chỉ hoạt động với FP16 hoặc INT8)
model.export(format="engine", device="dla:0", quantize=16) # dla:0 hoặc dla:1 tương ứng với các lõi DLA
# Tải model TensorRT đã export
trt_model = YOLO("yolo26n.engine")
# Chạy suy luận
results = trt_model("https://ultralytics.com/images/bus.jpg")Khi sử dụng export DLA, một số layer có thể không được DLA hỗ trợ và sẽ chuyển sang GPU để thực thi. Việc chuyển đổi này có thể làm tăng độ trễ và ảnh hưởng đến hiệu năng inference tổng thể. Vì vậy, mục đích chính của DLA không phải là giảm độ trễ inference so với TensorRT chạy hoàn toàn trên GPU. Thay vào đó, mục đích chính của DLA là tăng thông lượng và cải thiện hiệu quả năng lượng.
Benchmark YOLO26 trên NVIDIA Jetson#
Đội ngũ Ultralytics đã chạy benchmark YOLO26 trên 11 định dạng model để đo tốc độ và độ chính xác: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Benchmark được chạy trên NVIDIA Jetson AGX Thor Developer Kit, NVIDIA Jetson AGX Orin Developer Kit (64GB), NVIDIA Jetson Orin Nano Super Developer Kit và thiết bị Seeed Studio reComputer J4012 dùng Jetson Orin NX 16GB, với độ chính xác số FP32 và kích thước ảnh đầu vào mặc định là 640.
Biểu đồ so sánh#
Mặc dù tất cả định dạng export model đều hoạt động trên NVIDIA Jetson, biểu đồ so sánh bên dưới chỉ bao gồm PyTorch, TorchScript, TensorRT vì các định dạng này sử dụng GPU trên Jetson và được đảm bảo mang lại kết quả tốt nhất. Tất cả định dạng export khác chỉ sử dụng CPU và có hiệu năng không tốt bằng ba định dạng trên. Bạn có thể xem benchmark của tất cả định dạng export trong phần sau biểu đồ này.
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson AGX Thor#
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson AGX Orin (64GB)#
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson Orin Nano Super#
NVIDIA Jetson Orin NX 16GB#
Bảng so sánh chi tiết#
Bảng dưới đây trình bày kết quả benchmark của năm model khác nhau (YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x) trên 11 định dạng khác nhau (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), bao gồm trạng thái, kích thước, chỉ số mAP50-95(B) và thời gian suy luận của từng tổ hợp.
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson AGX Thor#
| Định dạng | Trạng thái | Dung lượng trên ổ đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/ảnh) |
|---|---|---|---|---|
| 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 |
Được benchmark bằng Ultralytics 8.4.7
Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson AGX Orin (64GB)#
| Định dạng | Trạng thái | Dung lượng trên ổ đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/ảnh) |
|---|---|---|---|---|
| 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.4770 | 4.18 |
| TensorRT (FP16) | ✅ | 7.9 | 0.4789 | 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 |
Được benchmark bằng Ultralytics 8.4.32
Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Bộ công cụ dành cho nhà phát triển NVIDIA Jetson Orin Nano Super#
| Định dạng | Trạng thái | Dung lượng trên ổ đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/ảnh) |
|---|---|---|---|---|
| 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 |
Được benchmark bằng Ultralytics 8.4.33
Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
NVIDIA Jetson Orin NX 16GB#
| Định dạng | Trạng thái | Dung lượng trên ổ đĩa (MB) | mAP50-95(B) | Thời gian suy luận (ms/ảnh) |
|---|---|---|---|---|
| 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 |
Được benchmark bằng Ultralytics 8.4.33
Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Tìm hiểu thêm về các hoạt động benchmark của Seeed Studio chạy trên các phiên bản phần cứng NVIDIA Jetson khác nhau.
Tái tạo kết quả của chúng tôi#
Để tái tạo các benchmark Ultralytics ở trên trên tất cả định dạng xuất, hãy chạy đoạn mã này:
from ultralytics import YOLO
# Tải model YOLO26n PyTorch
model = YOLO("yolo26n.pt")
# Benchmark tốc độ và độ chính xác của YOLO26n trên tập dữ liệu COCO128 cho tất cả định dạng xuất
results = model.benchmark(data="coco128.yaml", imgsz=640)Lưu ý rằng kết quả benchmark có thể thay đổi tùy theo cấu hình phần cứng và phần mềm cụ thể của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy benchmark. Để có kết quả đáng tin cậy nhất, hãy sử dụng tập dữ liệu có nhiều ảnh, ví dụ: data='coco.yaml' (5000 ảnh val).
Các phương pháp hay nhất khi sử dụng NVIDIA Jetson#
Khi sử dụng NVIDIA Jetson, có một số phương pháp hay nhất cần tuân theo để đạt hiệu năng tối đa khi chạy YOLO26 trên NVIDIA Jetson.
-
Bật chế độ nguồn MAX
Bật chế độ nguồn MAX trên Jetson sẽ đảm bảo tất cả lõi CPU và GPU đều được bật.
sudo nvpmodel -m 0 -
Bật Jetson Clocks
Bật Jetson Clocks sẽ đảm bảo tất cả lõi CPU và GPU hoạt động ở tần số tối đa.
sudo jetson_clocks -
Cài đặt ứng dụng Jetson Stats
Chúng ta có thể dùng ứng dụng jetson stats để theo dõi nhiệt độ của các thành phần hệ thống và kiểm tra các thông tin hệ thống khác như mức sử dụng CPU, GPU, RAM; thay đổi chế độ nguồn; đặt xung nhịp tối đa; kiểm tra thông tin JetPack.
sudo apt update sudo pip install jetson-stats sudo reboot jtop
Mẹo tối ưu hóa bộ nhớ cho NVIDIA Jetson#
Bộ nhớ khả dụng thường là yếu tố giới hạn trên các thiết bị Jetson, đặc biệt là các phiên bản có ít bộ nhớ như Jetson Orin Nano (8 GB) hoặc Orin NX 8 GB. Các mẹo dưới đây là những thay đổi thiết thực, ít rủi ro, có thể kết hợp để giải phóng vài trăm megabyte và cho phép chạy các model YOLO lớn hơn hoặc hỗ trợ thêm các tác vụ song song. Để tìm hiểu toàn diện, hãy xem bài viết trên blog NVIDIA về tối đa hóa hiệu quả bộ nhớ trên Jetson.
1. Chuyển sang khởi động không giao diện (Headless)#
Nếu Jetson của bạn được kết nối qua SSH hoặc chạy như một thiết bị chuyên dụng trong môi trường production mà không gắn màn hình, việc loại bỏ môi trường desktop và display server có thể thu hồi tối đa 865 MB RAM:
sudo systemctl set-default multi-user.target
sudo rebootĐể khôi phục desktop sau đó:
sudo systemctl set-default graphical.target
sudo reboot2. Tắt các dịch vụ hệ thống không sử dụng#
Các dịch vụ nền không thiết yếu (Bluetooth, trình quản lý kết nối, daemon phần cứng không sử dụng) tiêu thụ tổng cộng khoảng 32 MB. Liệt kê các dịch vụ đang hoạt động và tắt mọi dịch vụ không cần thiết cho quá trình triển khai của bạn:
# List running services
systemctl list-units --type=service --state=running
# Disable a service
sudo systemctl disable SERVICE_NAME3. Phân tích mức sử dụng bộ nhớ#
Trước khi tối ưu hóa, hãy xác định tiến trình nào thực sự đang tiêu thụ RAM. procrank sắp xếp các tiến trình theo PSS (Proportional Set Size), chỉ số phản ánh chính xác hơn mức tiêu thụ bộ nhớ thực tế của từng tiến trình so với RSS (Resident Set Size, tổng số trang RAM vật lý được ánh xạ bởi một tiến trình, bao gồm cả các trang dùng chung với tiến trình khác):
git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrankĐể xem mức cấp phát GPU và NvMap (đường dẫn xử lý CUDA/video) theo từng tiến trình:
sudo cat /sys/kernel/debug/nvmap/iovmm/clients4. Chạy suy luận mà không cần màn hình trong môi trường production#
Với các pipeline suy luận không yêu cầu xem trước trực tiếp, việc tắt các thành phần liên quan đến hiển thị (Tiler, OSD, DisplaySink) có thể tiết kiệm riêng 200+ MB từ pipeline. Với Ultralytics YOLO, hãy tắt trình xem và ghi kết quả ra ổ đĩa:
from ultralytics import YOLO
model = YOLO("yolo26n.engine")
# show=False ngăn mọi cửa sổ hiển thị; save=True ghi kết quả đã chú thích ra ổ đĩa
results = model.predict(source="video.mp4", show=False, save=True)Tác động cộng dồn#
| Tối ưu hóa | Bộ nhớ ước tính được giải phóng |
|---|---|
| Tắt giao diện đồ họa desktop | ~865 MB |
| Tắt các dịch vụ OS không sử dụng | ~32 MB |
| Pipeline suy luận không giao diện (không hiển thị) | ~200+ MB |
| Tổng cộng (các cách dễ thực hiện) | ~1 GB+ |
Kết hợp các thay đổi này đặc biệt hữu ích khi triển khai model TensorRT INT8 trên thiết bị có bộ nhớ hạn chế — đây có thể là yếu tố quyết định liệu một biến thể model lớn hơn có vừa bộ nhớ hay không.
Các bước tiếp theo#
Để tìm hiểu thêm và nhận hỗ trợ, hãy xem Tài liệu Ultralytics YOLO26.
Câu hỏi thường gặp#
Triển khai Ultralytics YOLO26 trên thiết bị NVIDIA Jetson khá đơn giản. Trước tiên, hãy flash NVIDIA JetPack SDK lên thiết bị Jetson. Sau đó, bạn có thể dùng image Docker dựng sẵn để thiết lập nhanh hoặc tự cài đặt các package cần thiết. Hướng dẫn chi tiết cho từng cách được cung cấp trong các phần Bắt đầu nhanh với Docker và Bắt đầu với cài đặt gốc.
Các model YOLO26 đã được benchmark trên nhiều thiết bị NVIDIA Jetson và cho thấy hiệu năng được cải thiện đáng kể. Ví dụ: định dạng TensorRT mang lại hiệu năng suy luận tốt nhất. Bảng trong phần Bảng so sánh chi tiết cung cấp cái nhìn tổng quan về các chỉ số hiệu năng như mAP50-95 và thời gian suy luận trên các định dạng model khác nhau.
TensorRT được khuyến nghị mạnh mẽ để triển khai model YOLO26 trên NVIDIA Jetson nhờ hiệu năng tối ưu. TensorRT tăng tốc suy luận bằng cách tận dụng năng lực GPU của Jetson, giúp đạt hiệu quả và tốc độ tối đa. Tìm hiểu thêm cách chuyển đổi sang TensorRT và chạy suy luận trong phần Sử dụng TensorRT trên NVIDIA Jetson.
Để cài đặt PyTorch và Torchvision trên NVIDIA Jetson, trước tiên hãy gỡ cài đặt mọi phiên bản hiện có được cài qua pip. Sau đó, cài đặt thủ công các phiên bản PyTorch và Torchvision tương thích với kiến trúc ARM64 của Jetson. Hướng dẫn chi tiết về quy trình này có trong phần Cài đặt PyTorch và Torchvision.
Để tối đa hóa hiệu năng của YOLO26 trên NVIDIA Jetson, hãy thực hiện các phương pháp hay nhất sau:
- Bật chế độ nguồn MAX để sử dụng tất cả lõi CPU và GPU.
- Bật Jetson Clocks để tất cả lõi chạy ở tần số tối đa.
- Cài đặt ứng dụng Jetson Stats để theo dõi các chỉ số hệ thống.
Để biết các lệnh và thông tin chi tiết bổ sung, hãy tham khảo phần Các phương pháp hay nhất khi sử dụng NVIDIA Jetson.
RAM khả dụng thường là nút thắt cổ chai trên các thiết bị Jetson có ít bộ nhớ. Ba cách đơn giản có thể kết hợp để giải phóng hơn 1 GB:
- Chuyển sang khởi động không giao diện (
sudo systemctl set-default multi-user.target) để loại bỏ giao diện đồ họa desktop (tiết kiệm ~865 MB). - Tắt các dịch vụ không sử dụng như Bluetooth hoặc trình quản lý kết nối (tiết kiệm ~32 MB).
- Chạy suy luận không cần màn hình bằng cách đặt
show=Falsetrong lệnh gọi YOLOpredict, tránh cấp phát bộ nhớ cho pipeline hiển thị (tiết kiệm ~200+ MB).
Dùng
procrankđể phân tích mức sử dụng RAM theo từng tiến trình vàsudo cat /sys/kernel/debug/nvmap/iovmm/clientsđể kiểm tra mức cấp phát GPU. Xem phần Mẹo tối ưu hóa bộ nhớ để biết đầy đủ chi tiết.- Chuyển sang khởi động không giao diện (
TensorRT 10.3.0 đi kèm JetPack 6 có một lỗi đã biết khiến không thể dựng engine INT8 không dùng NMS (
nms=False). Khi Ultralytics phát hiện tổ hợp này, hệ thống sẽ tự động chọn head one-to-many để đảm bảo quá trình xuất thành công.Để khôi phục khả năng xuất INT8 không dùng NMS, hãy nâng cấp TensorRT lên phiên bản mới hơn (ví dụ: 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 tensorrtSau khi nâng cấp, hãy chạy lại quá trình xuất. Để biết thêm chi tiết, xem issue #23841 trên GitHub.