TensorRT
TensorRT là SDK của NVIDIA, biên dịch mạng neural đã huấn luyện thành các engine được tối ưu để suy luận nhanh trên một GPU. Tìm hiểu cách tối ưu model và xem code.
TensorRT là SDK của NVIDIA dùng để suy luận deep learning hiệu năng cao trên GPU NVIDIA. TensorRT nhận một mạng đã huấn luyện, thường ở dạng tệp ONNX, rồi biên dịch mạng thành engine trong giai đoạn build, còn gọi là tệp plan: một chương trình dành riêng cho GPU có khả năng hợp nhất các lớp, chạy ở độ chính xác thấp hơn và sử dụng các kernel nhanh nhất được đo trên GPU đích. Trong giai đoạn runtime, ứng dụng tải và thực thi engine, thường đạt độ trễ suy luận thấp hơn và thông lượng cao hơn framework gốc. TensorRT được cung cấp dưới dạng thư viện C++ và Python cùng công cụ dòng lệnh trtexec; phiên bản chính hiện tại là TensorRT 11, với bản phát hành 11.4 tính đến tháng 10 năm 2026.
Cách TensorRT tối ưu hóa model#
Builder áp dụng một số phương pháp tối ưu hóa cho đồ thị mạng:
- Hợp nhất lớp và tensor: Phép tích chập, bias và hàm kích hoạt của phép tích chập được gộp thành một kernel; các lớp có đầu ra không được sử dụng sẽ bị loại bỏ, nhờ đó kết quả trung gian nằm trên chip thay vì phải truyền qua lại bộ nhớ GPU.
- Độ chính xác thấp hơn: FP16 và BF16 giảm một nửa lưu lượng bộ nhớ so với FP32; INT8 và FP8 tiếp tục giảm một nửa; INT4 (chỉ dành cho trọng số) và FP4 còn giảm thêm trên các GPU đời mới. Đây là một dạng lượng tử hóa model. TensorRT 11 đã loại bỏ các flag builder FP16 và INT8 cùng cơ chế hiệu chuẩn INT8 ngầm của TensorRT 10, đồng thời yêu cầu mạng có kiểu dữ liệu tường minh mạnh, trong đó các nút cast và cặp quantize-dequantize khai báo độ chính xác của từng lớp. Model Optimizer của NVIDIA có thể chèn các nút đó vào tệp ONNX.
- Tự động tinh chỉnh kernel: Với mỗi lớp, builder đo thời gian chạy các phương án triển khai, gọi là tactic, trên GPU thực tế và giữ lại phương án nhanh nhất.
- Lập kế hoạch bộ nhớ: Các buffer activation được tái sử dụng giữa những lớp có khoảng thời gian tồn tại không chồng lấn, giúp giảm dung lượng bộ nhớ của engine.
- Shape động: Các profile tối ưu hóa gồm shape tối thiểu, tối ưu và tối đa cho phép một engine xử lý các batch size hoặc độ phân giải ảnh khác nhau, đồng thời được tinh chỉnh theo shape tối ưu.
Quá trình build engine có thể mất vài phút, và kết quả phụ thuộc vào phần cứng. Theo mặc định, engine chỉ chạy trên loại GPU đã dùng để build và cùng phiên bản TensorRT; engine tương thích phần cứng và phiên bản đánh đổi một phần tốc độ để tăng tính di động. Vì vậy, các hệ thống triển khai giữ lại tệp ONNX và build engine ngay tại nơi chạy:
Xuất model sang TensorRT#
Các model Ultralytics YOLO26 xuất sang TensorRT bằng model.export(format="engine"). Công cụ này trước tiên ghi tệp ONNX, sau đó build engine trên GPU cục bộ ở FP16 với quantize=16 hoặc INT8 với quantize=8, được hiệu chuẩn trên ảnh từ dataset data. Trên TensorRT 11, quá trình xuất áp dụng các độ chính xác này thông qua Model Optimizer, theo yêu cầu của API kiểu dữ liệu tường minh mạnh:
from ultralytics import YOLO
# Build engine TensorRT FP16 trên GPU NVIDIA cục bộ (ghi tệp yolo26n.engine)
model = YOLO("yolo26n.pt")
model.export(format="engine", quantize=16)
# Tải engine và chạy suy luận thông qua cùng API
trt_model = YOLO("yolo26n.engine")
results = trt_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_tensorrt.jpg")Ảnh đã lưu cho thấy các đối tượng được engine FP16 phát hiện trong ảnh xe buýt, thông qua cùng giao diện YOLO như model PyTorch.
TensorRT so với các công cụ liên quan#
- ONNX: Định dạng model di động mà TensorRT thường tiếp nhận. Một tệp ONNX có thể được biên dịch thành các engine riêng cho GPU trung tâm dữ liệu và module nhúng.
- ONNX Runtime với execution provider TensorRT: Chạy các đồ thị con được TensorRT hỗ trợ dưới dạng engine TensorRT, đồng thời chuyển sang kernel CUDA hoặc CPU cho phần còn lại, vẫn sử dụng API ONNX Runtime.
- PyTorch: Framework được dùng để huấn luyện phần lớn model. Torch-TensorRT biên dịch trực tiếp model PyTorch bằng TensorRT, không cần bước ONNX riêng.
- Các engine suy luận khác: OpenVINO dành cho phần cứng Intel, Core ML dành cho thiết bị Apple và LiteRT dành cho Android cùng thiết bị nhúng đảm nhiệm vai trò tương tự trên các loại chip khác.
- TensorRT-LLM: Thư viện mã nguồn mở của NVIDIA dành cho suy luận model ngôn ngữ lớn, hiện được thiết kế dựa trên PyTorch, với kernel attention tối ưu, lượng tử hóa, giải mã suy đoán và xử lý song song đa GPU.
Ứng dụng thực tế#
- Phân tích video: DeepStream SDK của NVIDIA chạy engine TensorRT trong các pipeline nhiều camera phục vụ phân tích bán lẻ, giao thông và an ninh, nơi nhiều luồng dùng chung một GPU.
- Kiểm tra công nghiệp: Camera trên dây chuyền sản xuất tốc độ cao cần suy luận thời gian thực trong khoảng thời gian mỗi sản phẩm nằm trong tầm nhìn. Engine độ chính xác thấp hơn giúp thực hiện điều này trên các GPU nhỏ gọn.
- Xe tự hành: Mạng perception dành cho xe tự hành chạy dưới dạng engine TensorRT trên các nền tảng NVIDIA DRIVE như DRIVE AGX Orin và Thor.
- Robot và thiết bị biên: Các module NVIDIA Jetson được tích hợp TensorRT cùng JetPack.










