Ultralytics YOLO27:

Hướng dẫn bắt đầu nhanh: NVIDIA Jetson với Ultralytics YOLO26#

Hướng dẫn toàn diện này cung cấp quy trình chi tiết để triển khai Ultralytics YOLO26 trên các thiết bị NVIDIA Jetson. Ngoài ra, hướng dẫn trình bày 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 nhưng mạnh mẽ này.

Hỗ trợ sản phẩm mới

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 tới 2070 FP4 TFLOPS năng lực tính toán AI và 128 GB bộ nhớ, với công suất có thể cấu hình từ 40 W đến 130 W. Thiết bị cung cấp năng lực tính toán AI cao hơn 7,5 lần so với NVIDIA Jetson AGX Orin, cùng hiệu suất năng lượng tốt hơn 3,5 lần, cho phép chạy liền mạch các model AI phổ biến nhất.



Watch: How to use Ultralytics YOLO26 on NVIDIA Jetson Devices
NVIDIA Jetson Ecosystem
Lưu ý

Hướng dẫn này đã được kiểm thử với NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000)NVIDIA Jetson AGX Orin Developer Kit (64GB) chạy 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/ bản phát hành JetPack 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 sẽ hoạt động trên toàn bộ dòng phần cứng NVIDIA Jetson, bao gồm cả các thiết bị mới nhất và thiết bị thế hệ cũ.

NVIDIA Jetson là gì?#

NVIDIA Jetson là một dòng bo mạch máy tính nhúng được thiết kế để mang năng lực 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 nhưng mạnh mẽ này được xây dựng dựa trên kiến trúc GPU của NVIDIA và có thể chạy trực tiếp các thuật toán AI phức tạp cùng các model deep learning trên thiết bị mà không phụ thuộc vào tài nguyên cloud computing. Các 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, nơi inference AI cần được thực hiện 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à hoạt động với mức điện năng thấp hơn so với các thiết bị tính toán GPU truyền thống.

So sánh dòng NVIDIA Jetson#

NVIDIA Jetson AGX Thor là phiên bản mới nhất của 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 dưới đây so sánh một số thiết bị Jetson trong hệ sinh thái.

Jetson AGX Thor(T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
Hiệu năng AI2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPUGPU kiến trúc NVIDIA Blackwell 2560 nhân với 96 Tensor CoresGPU kiến trúc NVIDIA Ampere 2048 nhân với 64 Tensor CoresGPU kiến trúc NVIDIA Ampere 1024 nhân với 32 Tensor CoresGPU kiến trúc NVIDIA Ampere 1024 nhân với 32 Tensor CoresGPU kiến trúc NVIDIA Volta 512 nhân với 64 Tensor CoresGPU kiến trúc NVIDIA Volta™ 384 nhân với 48 Tensor CoresGPU kiến trúc NVIDIA Maxwell™ 128 nhân
Tần số tối đa của GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPUCPU Arm® Neoverse®-V3AE 64-bit 14 nhân, 1MB L2 + 16MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit 12 nhân, 3MB L2 + 6MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 64-bit 8 nhân, 2MB L2 + 4MB L3CPU Arm® Cortex®-A78AE v8.2 64-bit 6 nhân, 1.5MB L2 + 4MB L3CPU NVIDIA Carmel Arm®v8.2 64-bit 8 nhân, 8MB L2 + 4MB L3CPU NVIDIA Carmel Arm®v8.2 64-bit 6 nhân, 6MB L2 + 4MB L3Bộ xử lý Quad-Core Arm® Cortex®-A57 MPCore
Tần số tối đa của CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Bộ nhớ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

Để xem bảng so sánh chi tiết hơn, vui lòng truy cập phần Compare Specifications trên trang NVIDIA Jetson chính thức.

NVIDIA JetPack là gì?#

NVIDIA JetPack SDK cung cấp sức mạnh cho các module Jetson, là giải pháp toàn diện nhất, 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 đầu-cuối và 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, Linux kernel, môi trường desktop Ubuntu và bộ thư viện hoàn chỉnh để tăng tốc tính toán GPU, multimedia, đồ họa và computer vision. JetPack cũng bao gồm các sample, tài liệu và công cụ dành cho developer trên cả máy tính host và developer kit, đồng thời hỗ trợ các SDK cấp cao hơn như DeepStream cho phân tích video streaming, Isaac cho robot và Riva cho AI hội thoại.

Flash JetPack vào NVIDIA Jetson#

Bước đầu tiên sau khi có thiết bị NVIDIA Jetson là flash NVIDIA JetPack vào thiết bị. Có một số cách khác nhau để flash các thiết bị NVIDIA Jetson.

  1. Đối với JetPack 7.2 trên Jetson AGX Thor, AGX Orin hoặc Orin Nano Developer Kit chính thức, hãy tải ISO Jetson hợp nhất, ghi ISO vào USB flash drive và làm theo hướng dẫn bắt đầu nhanh dành cho thiết bị tương ứng: AGX Thor, AGX Orin hoặc Orin Nano. Từ JetPack 7.2, Orin Nano không còn sử dụng image thẻ SD có thể tải xuống; ISO trên USB sẽ cài Jetson Linux vào thẻ microSD hoặc SSD NVMe của thiết bị.
  2. Nếu bạn chủ ý sử dụng JetPack 6 trên Jetson Orin Nano Developer Kit, hãy làm theo hướng dẫn cập nhật JetPack 6.x và thẻ SD của NVIDIA.
  3. Nếu sở hữu bất kỳ Development Kit NVIDIA nào khác, bạn có thể flash JetPack vào thiết bị bằng SDK Manager.
  4. Nếu sở hữu Seeed Studio reComputer J4012, bạn có thể flash JetPack vào SSD đi kèm; nếu sở hữu Seeed Studio reComputer J1020 v2, bạn có thể flash JetPack vào eMMC/ SSD.
  5. Nếu sở hữu bất kỳ thiết bị bên thứ ba nào khác được cung cấp sức mạnh bởi module NVIDIA Jetson, bạn nên làm theo hướng dẫn flash bằng command line.
Lưu ý

Đối với các 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 của thiết bị để cài đặt tất cả 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 bật các phiên bản NVIDIA JetPack được những thiết bị NVIDIA Jetson khác nhau hỗ trợ.

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

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 bằng các docker image dựng sẵn dành cho Jetson. Tham khảo bảng trên và chọn phiên bản JetPack tương ứng với thiết bị Jetson bạn sở hữu.

t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
Hỗ trợ JetPack 7 Docker và TensorRT

Hình ảnh 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 hình ảnh này cho các khối lượng công việc PyTorch trên máy chủ được hỗ trợ. Đối với việc xuất TensorRT trên Jetson, hãy sử dụng cài đặt gốc bên dưới với thời gian chạy TensorRT 10.x được hỗ trợ bởi bản phát hành JetPack của bạn. JetPack 7.2 trên Thor hoặc Orin yêu cầu xác thực vùng chứa riêng biệt. Xây dựng lại các engine cho GPU mục tiêu và phiên bản TensorRT.

Đối với các hình ảnh JetPack 4, 5 và 6, tiếp tục Sử dụng TensorRT trên NVIDIA Jetson. Hình ảnh JetPack 7.1 ở trên chỉ dành cho các khối lượng công việc PyTorch.

Bắt đầu với cài đặt native#

Để cài đặt native mà không sử dụng Docker, vui lòng tham khảo các bước dưới đây.

Chạy trên JetPack 7.2#

Cài đặt package Ultralytics#

Tại đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency cho việc export sẽ được tự động cài đặt trong lần đầu tiên bạn export model, vì vậy ở đây chỉ cần package cơ sở. Chúng ta sẽ chủ yếu tập trung vào việc export sang NVIDIA TensorRT vì TensorRT đảm bảo tận dụng hiệu năng tối đa của các thiết bị Jetson.

  1. 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
  2. Cài đặt package pip ultralytics

    pip install ultralytics
  3. Khởi động lại thiết bị

    sudo reboot

Cài đặt PyTorch và Torchvision#

Lệnh cài đặt ultralytics ở trên sẽ cài đặt Torch và Torchvision. Tuy nhiên, 2 package này được cài qua pip không tương thích để chạy trên các thiết bị JetPack 7.2 với CUDA 13. Do đó, chúng ta cần cài đặt thủ công.

Cài đặt torchtorchvision theo JP7.2

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

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 bao gồm các wheel ARM64, nhưng chúng không thay thế các gói dành riêng cho thiết bị cho mọi bản phát hành JetPack.

Tại đâ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.whl

Chạy trên JetPack 6.1#

Cài đặt package Ultralytics#

Tại đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency cho việc export sẽ được tự động cài đặt trong lần đầu tiên bạn export model, vì vậy ở đây chỉ cần package cơ sở. Chúng ta sẽ chủ yếu tập trung vào việc export sang NVIDIA TensorRT vì TensorRT đảm bảo tận dụng hiệu năng tối đa của các thiết bị Jetson.

  1. 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
  2. Cài đặt package pip ultralytics

    pip install ultralytics
  3. Khởi động lại thiết bị

    sudo reboot

Cài đặt PyTorch và Torchvision#

Lệnh cài đặt ultralytics ở trên sẽ cài đặt 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, vốn dựa trên kiến trúc ARM64. Do đó, chúng ta cần cài đặt thủ công PyTorch pip wheel dựng sẵn và biên dịch hoặc cài đặt Torchvision từ source.

Cài đặt torch 2.10.0torchvision 0.25.0 theo 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
Lưu ý

Truy cập trang PyTorch cho Jetson để xem tất cả các phiên bản PyTorch dành cho những phiên bản JetPack khác nhau. Để 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 khả năng tương thích giữa PyTorch và Torchvision.

Cài đặt cuDSS để khắc phục vấn đề 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 cudss

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 bao gồm các wheel ARM64, nhưng chúng không thay thế các gói dành riêng cho thiết bị cho mọi bản phát hành 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 Jetson Zoo ONNX Runtime.

Đố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.whl

Ngoà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.whl

Chạy trên JetPack 5.1.2#

Cài đặt package Ultralytics#

Tại đây, chúng ta sẽ cài đặt package Ultralytics trên Jetson. Các dependency cho việc export sẽ được tự động cài đặt trong lần đầu tiên bạn export model, vì vậy ở đây chỉ cần package cơ sở. Chúng ta sẽ chủ yếu tập trung vào việc export sang NVIDIA TensorRT vì TensorRT đảm bảo tận dụng hiệu năng tối đa của các thiết bị Jetson.

  1. 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
  2. Cài đặt package pip ultralytics

    pip install ultralytics
  3. Khởi động lại thiết bị

    sudo reboot

Cài đặt PyTorch và Torchvision#

Lệnh cài đặt ultralytics ở trên sẽ cài đặt 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, vốn dựa trên kiến trúc ARM64. Do đó, chúng ta cần cài đặt thủ công PyTorch pip wheel dựng sẵn và biên dịch hoặc cài đặt Torchvision từ source.

  1. Gỡ cài đặt PyTorch và Torchvision hiện đang được cài đặt

    pip uninstall torch torchvision
  2. Cài đặt torch 2.1.0torchvision 0.16.2 theo 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
Lưu ý

Truy cập trang PyTorch cho Jetson để xem tất cả các phiên bản PyTorch dành cho những phiên bản JetPack khác nhau. Để 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 khả năng tương thích giữa 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 bao gồm các wheel ARM64, nhưng chúng không thay thế các gói dành riêng cho thiết bị cho mọi bản phát hành 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 Jetson Zoo ONNX Runtime. Tại đâ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.whl
Lưu ý

onnxruntime-gpu sẽ tự động hoàn nguyên phiên bản NumPy về phiên bản mới nhất. Vì vậy, chúng ta cần cài đặt lại NumPy thành 1.23.5 để khắc phục sự cố bằng cách thực thi:

pip install numpy==1.23.5

Sử dụng TensorRT trên NVIDIA Jetson#

Trong số tất cả các định dạng xuất model được hỗ trợ bởi Ultralytics, TensorRT mang lại hiệu suất suy luận cao nhất trên các thiết bị NVIDIA Jetson, khiến đây trở thành đề xuất hàng đầu của chúng tôi cho các triển khai trên Jetson. Trước khi xuất, hãy cài đặt các ràng buộc Python TensorRT được cung cấp cho bản phát hành JetPack của bạn và xác minh chúng bằng python3 -c "import tensorrt; print(tensorrt.__version__)". Giữ lại thời gian chạy TensorRT 10.x được hỗ trợ trên JetPack 6/7; không thay thế nó bằng TensorRT 11.2.1. Để biết hướng dẫn thiết lập và cách sử dụng nâng cao, hãy xem hướng dẫn tích hợp TensorRT chuyêndedicated của chúng tôi.

Bạn cũng có thể export từ 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à target Jetson mong muốn. 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 chúng trên SKU Orin dự kiến trước khi deployment.

TensorRT engine phụ thuộc vào từng thiết bị

TensorRT lập profile và tinh chỉnh engine trên GPU build của thiết bị. Hãy đảm bảo kiến trúc GPU cùng runtime TensorRT/CUDA của target tương thích, đồng thời xác thực mọi engine đã tải xuống trên thiết bị deployment. Các SKU Orin có cùng kiến trúc không tự động đảm bảo khả năng portable, và quá trình calibration INT8 nên sử dụng thiết bị target để đạt kết quả tốt nhất.

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 với model đã export.

Ví dụ
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")
Lưu ý

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 Bộ tăng tốc Deep Learning của NVIDIA (DLA)#

Bộ tăng tốc Deep Learning của NVIDIA (DLA) là một thành phần phần cứng chuyên dụng được tích hợp trong các thiết bị NVIDIA Jetson, giúp tối ưu inference deep learning để đạt hiệu quả năng lượng và hiệu năng cao. Bằng cách chuyển các tác vụ khỏi GPU (giải phóng GPU cho những 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ì throughput cao, rất phù hợp với các hệ thống nhúng và ứng dụng AI thời gian thực.

Khả năng tương thích giữa TensorRT và DLA

NVIDIA liệt kê TensorRT 10.7 là bản phát hành cuối cùng có hỗ trợ DLA; TensorRT 11.0, 11.1 và 11.2 không hỗ trợ DLA. Sử dụng bản phát hành TensorRT có khả năng hỗ trợ DLA được hỗ trợ bởi phiên bản JetPack của bạn. TensorRT 11.2.1 không hỗ trợ JetPack, kể cả việc xuất chỉ có GPU.

Các thiết bị Jetson sau đây được trang bị phần cứng DLA:

Thiết bị JetsonSố lõi DLATần số tối đa của DLA
Dòng Jetson AGX Orin21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX 8GB1614 MHz
Dòng Jetson AGX Xavier21.4 GHz
Dòng Jetson Xavier NX21.1 GHz
Ví dụ
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")
Lưu ý

Khi sử dụng các bản export DLA, một số layer có thể không được hỗ trợ chạy trên DLA và sẽ chuyển sang GPU để thực thi. Cơ chế fallback này có thể gây thêm latency và ảnh hưởng đến hiệu năng inference tổng thể. Vì vậy, DLA không được thiết kế chủ yếu để giảm latency 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 throughput và cải thiện hiệu quả năng lượng.

Đánh giá hiệu năng YOLO26 trên NVIDIA Jetson#

Các đánh giá hiệu năng YOLO26 đã được thực hiện bởi đội ngũ Ultralytics trên 11 định dạng model khác nhau nhằm đo lường tốc độ và độ chính xác: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Các đánh giá hiệu năng được chạy trên các thiết bị 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 chạy bằng Jetson Orin NX 16GB ở độ chính xác FP32 với kích thước ảnh đầu vào mặc định là 640.

Biểu đồ so sánh#

Mặc dù tất cả bản export model đều hoạt động trên NVIDIA Jetson, chúng tôi chỉ đưa PyTorch, TorchScript, TensorRT vào biểu đồ so sánh bên dưới vì các định dạng này sử dụng GPU trên Jetson và được đảm bảo tạo ra kết quả tốt nhất. Tất cả bản export còn lại 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 cho tất cả bản export trong phần sau biểu đồ này.

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

Bảng so sánh chi tiết#

Bảng dưới đây thể hiện kết quả đánh giá hiệu năng cho 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), cung cấp cho chúng ta trạng thái, kích thước, chỉ số mAP50-95(B) và thời gian suy luận cho từng kết hợp.

NVIDIA Jetson AGX Thor Developer Kit#

Hiệu năng
Định dạngTrạng tháiKích thước trên ổ đĩa (MB)mAP50-95(B)Thời gian suy luận (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

Benchmark bằng Ultralytics 8.4.7

Lưu ý

Thời gian suy luận không bao gồm bước tiền xử lý/hậu xử lý.

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Hiệu năng
Định dạngTrạng tháiKích thước trên ổ đĩa (MB)mAP50-95(B)Thời gian suy luận (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

Benchmark bằng Ultralytics 8.4.32

Lưu ý

Thời gian suy luận không bao gồm bước tiền xử lý/hậu xử lý.

NVIDIA Jetson Orin Nano Super Developer Kit#

Hiệu năng
Định dạngTrạng tháiKích thước trên ổ đĩa (MB)mAP50-95(B)Thời gian suy luận (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

Benchmark bằng Ultralytics 8.4.33

Lưu ý

Thời gian suy luận không bao gồm bước tiền xử lý/hậu xử lý.

NVIDIA Jetson Orin NX 16GB#

Hiệu năng
Định dạngTrạng tháiKích thước trên ổ đĩa (MB)mAP50-95(B)Thời gian suy luận (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

Benchmark bằng Ultralytics 8.4.33

Lưu ý

Thời gian suy luận không bao gồm bước tiền xử lý/hậu xử lý.

Khám phá thêm các hoạt động benchmark của Seeed Studio 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 export, hãy chạy đoạn code này:

Ví dụ
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)

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ư workload 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 dataset có số lượng ảnh lớn, chẳng hạn như data='coco.yaml' (5000 ảnh val).

Best practice khi sử dụng NVIDIA Jetson#

Khi sử dụng NVIDIA Jetson, bạn nên tuân thủ một số best practice để đạt hiệu năng tối đa trên NVIDIA Jetson chạy YOLO26.

  1. Bật MAX Power Mode

    Bật MAX Power Mode trên Jetson sẽ đảm bảo tất cả lõi CPU và GPU đều được bật.

    sudo nvpmodel -m 0
  2. Bật Jetson Clocks

    Bật Jetson Clocks sẽ đảm bảo tất cả lõi CPU và GPU chạy ở tần số tối đa.

    sudo jetson_clocks
  3. Cài đặt ứng dụng Jetson Stats

    Bạn có thể sử 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 những thông tin khác như mức sử dụng CPU, GPU, RAM, thay đổi power mode, đặt xung nhịp tối đa và kiểm tra thông tin JetPack

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

Mẹo tối ưu 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 biến thể có ít bộ nhớ hơn như Jetson Orin Nano (8 GB) hoặc Orin NX 8 GB. Các mẹo dưới đây là những thay đổi thực tế, ít rủi ro, có thể giúp giải phóng tổng cộng vài trăm megabyte và cho phép bạn chạy các model YOLO lớn hơn hoặc hỗ trợ thêm các workload song song. Để xem hướng dẫn toàn diện, hãy tham khảo blog của NVIDIA về tối đa hóa hiệu quả bộ nhớ trên Jetson.

1. Chuyển sang khởi động Headless (không GUI)#

Nếu Jetson được kết nối qua SSH hoặc chạy như một appliance production không gắn màn hình, việc loại bỏ desktop environment và display server có thể thu hồi tới 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 reboot

2. Vô hiệu hóa các system service không sử dụng#

Các background service 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. Hãy liệt kê các service đang hoạt động và vô hiệu hóa mọi service không cần thiết cho deployment của bạn:

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

# Disable a service
sudo systemctl disable SERVICE_NAME

3. Phân tích mức sử dụng bộ nhớ#

Trước khi tối ưu, hãy xác định process nào thực sự đang tiêu thụ RAM. procrank sắp xếp các process theo PSS (Proportional Set Size), phản ánh footprint bộ nhớ thực tế của từng process chính xác hơn RSS (Resident Set Size, tổng số trang RAM vật lý được một process ánh xạ, bao gồm các trang được chia sẻ với những process khác):

git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrank

Để xem các allocation GPU và NvMap (pipeline CUDA/video) theo từng process:

sudo cat /sys/kernel/debug/nvmap/iovmm/clients

4. Chạy inference không cần màn hình trong môi trường production#

Đối với các pipeline inference không yêu cầu live preview, việc vô hiệu hóa các thành phần liên quan đến hiển thị (Tiler, OSD, DisplaySink) có thể tiết kiệm 200+ MB chỉ riêng cho pipeline. Với Ultralytics YOLO, hãy tắt viewer và ghi kết quả vào ổ đĩa thay thế:

Ví dụ
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)

Tác động cộng dồn#

Tối ưu hóaBộ nhớ giải phóng gần đúng
Vô hiệu hóa desktop GUI~865 MB
Vô hiệu hóa OS service không sử dụng~32 MB
Pipeline inference Headless (không hiển thị)~200+ MB
Tổng cộng (các cách dễ thực hiện)~1 GB+

Việc kết hợp các thay đổi này đặc biệt hữu ích khi nhắm đến các model TensorRT INT8 trên thiết bị hạn chế bộ nhớ — điều này có thể quyết định việc một biến thể model lớn hơn có vừa với 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.

FAQ#

  • Triển khai Ultralytics YOLO26 trên các thiết bị NVIDIA Jetson là một quy trình đơn giản. Trước tiên, hãy flash thiết bị Jetson bằng NVIDIA JetPack SDK. Sau đó, bạn có thể sử dụng Docker image dựng sẵn để thiết lập nhanh hoặc cài đặt thủ công các package cần thiết. Hướng dẫn chi tiết cho từng phương pháp có trong các phần Bắt đầu nhanh với DockerBắt đầu với cài đặt native.

  • Các model YOLO26 đã được đánh giá hiệu năng trên nhiều thiết bị NVIDIA Jetson khác nhau cho thấy sự cải thiện đáng kể về hiệu năng. 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 Detailed Comparison Tables cung cấp cái nhìn toàn diện 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 các model YOLO26 trên NVIDIA Jetson nhờ hiệu năng tối ưu. TensorRT tăng tốc inference bằng cách tận dụng khả năng của GPU Jetson, đảm bảo hiệu quả và tốc độ tối đa. Tìm hiểu thêm về cách chuyển đổi sang TensorRT và chạy inference 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ó thể đã đượ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 cho 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 tuân thủ các best practice sau:

    1. Bật MAX Power Mode để sử dụng tất cả lõi CPU và GPU.
    2. Bật Jetson Clocks để chạy tất cả lõi ở tần số tối đa.
    3. Cài đặt ứng dụng Jetson Stats để theo dõi các metric hệ thống.

    Để xem các lệnh và thông tin bổ sung, hãy tham khảo phần Best practice 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 dễ thực hiện sau đây có thể cùng nhau giải phóng hơn 1 GB:

    1. Chuyển sang khởi động headless (sudo systemctl set-default multi-user.target) để loại bỏ desktop GUI (đã giải phóng ~865 MB).
    2. Vô hiệu hóa các service không sử dụng, chẳng hạn như Bluetooth hoặc trình quản lý kết nối (đã giải phóng ~32 MB).
    3. Chạy inference không cần màn hình bằng cách đặt show=False trong lệnh gọi YOLO predict, qua đó tránh cấp phát bộ nhớ cho display pipeline (đã giải phóng ~200+ MB).

    Sử dụng procrank để phân tích mức sử dụng RAM theo từng process và sudo cat /sys/kernel/debug/nvmap/iovmm/clients để kiểm tra các allocation GPU. Xem phần Mẹo tối ưu bộ nhớ để biết đầy đủ chi tiết.

  • TensorRT 10.3.0 đi kèm với JetPack 6 có một lỗi đã biết ngăn cản việc xây dựng engine INT8 khi nms=False được bật. Khi Ultralytics phát hiện sự kết hợp này, công cụ sẽ tự động chọn phần đầu one-to-many để đảm bảo quá trình xuất thành công.

    Để khôi phục các bản xuất INT8 không cần 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 tensorrt

    Sau khi nâng cấp, hãy chạy lại quá trình export. Để biết thêm chi tiết, xem issue #23841 trên GitHub.

Bình luận