Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

TensorRT

Tối ưu hóa các mô hình học sâu với TensorRT để suy luận nhanh hơn, hiệu quả hơn NVIDIA GPU. Đạt được hiệu suất thời gian thực với YOLO và các ứng dụng AI.

TensorRT là bộ công cụ phát triển phần mềm (SDK) hiệu suất cao do NVIDIA phát triển, chuyên biệt để tối ưu hóa và thực thi các mô hình học sâu . Nó hoạt động như một công cụ suy luận chuyên biệt, sử dụng các mạng nơ-ron đã được huấn luyện và tái cấu trúc chúng để chạy với hiệu suất tối đa trên NVIDIA Bộ xử lý đồ họa (GPU) . Bằng cách hợp lý hóa đồ thị tính toán và quản lý việc sử dụng bộ nhớ, TensorRT giảm đáng kể độ trễ suy luận và tăng thông lượng, khiến nó trở thành công cụ thiết yếu cho các nhà phát triển xây dựng ứng dụng yêu cầu phản hồi ngay lập tức, theo thời gian thực.

Làm sao TensorRT Tối ưu hóa hiệu suất

Mục tiêu chính của TensorRT là thu hẹp khoảng cách giữa một mô hình được đào tạo trong một khuôn khổ linh hoạt và một mô hình được triển khai để đạt tốc độ cao. Điều này đạt được thông qua một số kỹ thuật tối ưu hóa tinh vi:

  • Hợp nhất lớp và tối ưu hóa đồ thị: TensorRT phân tích kiến trúc mạng và hợp nhất nhiều lớp thành một thao tác duy nhất. Ví dụ, nó có thể kết hợp một lớp tích chập với một bước bias và bước kích hoạt. Việc giảm số lượng thao tác này giúp giảm thiểu chi phí khởi chạy kernel trên hệ thống. GPU .
  • Hiệu chuẩn chính xác: Để tăng tốc hiệu suất hơn nữa, TensorRT hỗ trợ lượng tử hóa mô hình . Quá trình này chuyển đổi trọng số mô hình từ định dạng dấu phẩy động 32 bit tiêu chuẩn (FP32) sang các định dạng có độ chính xác thấp hơn như độ chính xác hỗn hợp (FP16) hoặc số nguyên 8 bit (INT8). Điều này giúp giảm đáng kể mức sử dụng băng thông bộ nhớ trong khi vẫn duy trì độ chính xác cao.
  • Tự động điều chỉnh hạt nhân: Khác nhau GPU Kiến trúc xử lý các phép toán theo những cách khác nhau. TensorRT tự động chọn các lớp dữ liệu và thuật toán tốt nhất từ thư viện lớn các hạt nhân được tối ưu hóa, đảm bảo mô hình chạy tối ưu trên phần cứng mục tiêu cụ thể, chẳng hạn như NVIDIA Jetson hoặc trung tâm dữ liệu A100.
  • Bộ nhớ Tensor động: SDK tối ưu hóa việc phân bổ bộ nhớ bằng cách tái sử dụng bộ nhớ cho các tenxơ (bộ chứa dữ liệu) không cần thiết đồng thời, giúp giảm đáng kể tổng dung lượng bộ nhớ trong quá trình triển khai mô hình .

Ứng dụng thực tế của TensorRT

Bởi vì khả năng xử lý khối lượng dữ liệu khổng lồ với độ trễ tối thiểu, TensorRT được áp dụng rộng rãi trong các ngành công nghiệp dựa vào thị giác máy tính và các nhiệm vụ AI phức tạp.

  1. Xe tự hành: Trong lĩnh vực AI trong ô tô , xe tự lái phải xử lý nguồn cấp dữ liệu video từ nhiều camera để detect người đi bộ, biển báo và chướng ngại vật ngay lập tức. Sử dụng TensorRT các mô hình nhận thức như mạng phát hiện vật thể có thể phân tích khung hình trong vài mili giây, cho phép hệ thống điều khiển của xe đưa ra các quyết định quan trọng về an toàn mà không bị trễ.
  2. Sản xuất thông minh: Các nhà máy hiện đại ứng dụng AI trong sản xuất để kiểm tra quang học tự động. Camera tốc độ cao ghi lại hình ảnh sản phẩm trên dây chuyền lắp ráp và TensorRT - Các mô hình được tối ưu hóa xác định lỗi hoặc bất thường theo thời gian thực. Điều này đảm bảo kiểm soát chất lượng theo kịp môi trường sản xuất tốc độ cao, thường được triển khai trên các thiết bị AI biên ngay tại nhà máy.

Sử dụng TensorRT với Ultralytics YOLO11

Tích hợp TensorRT vào quy trình làm việc của bạn một cách đơn giản với các công cụ AI hiện đại. ultralytics gói cung cấp một phương pháp liền mạch để chuyển đổi tiêu chuẩn PyTorch mô hình thành TensorRT động cơ. Điều này cho phép người dùng tận dụng kiến trúc hiện đại của Ultralytics YOLO11 với khả năng tăng tốc phần cứng của NVIDIA GPU.

Ví dụ sau đây minh họa cách xuất một YOLO11 mô hình cho một TensorRT tập tin động cơ (.engine) và sử dụng nó để suy luận:

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TensorRT format (creates 'yolo11n.engine')
# This step optimizes the model for the specific GPU currently in use
model.export(format="engine")

# Load the optimized TensorRT model for high-speed inference
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")

TensorRT so với các công nghệ suy luận khác

Điều quan trọng là phải phân biệt TensorRT từ các công cụ khác trong hệ sinh thái học máy.

  • TensorRT so với các Khung đào tạo: Các thư viện như PyTorch và TensorFlow được thiết kế chủ yếu để đào tạo các mô hình, ưu tiên tính linh hoạt và dễ gỡ lỗi. TensorRT chỉ dành cho suy luận , ưu tiên tốc độ thô và hiệu quả trên phần cứng cụ thể.
  • TensorRT so với ONNX Runtime: Định dạng ONNX (Open Neural Network Exchange - Trao đổi Mạng Nơ-ron Mở) được thiết kế để tương thích trên nhiều nền tảng khác nhau. Mặc dù ONNX Runtime là một công cụ đa năng chạy trên nhiều phần cứng khác nhau, TensorRT cung cấp các tối ưu hóa sâu hơn, dành riêng cho phần cứng NVIDIA GPU thường mang lại hiệu suất cao hơn so với các trình chạy thông thường.
  • TensorRT so với OpenVINO : Tương tự như cách TensorRT được tối ưu hóa cho NVIDIA phần cứng, bộ công cụ OpenVINO được thiết kế để tăng tốc suy luận trên Intel Bộ xử lý (CPU và GPU tích hợp). Việc lựa chọn giữa chúng hoàn toàn phụ thuộc vào phần cứng triển khai của bạn.

Đối với việc triển khai đám mây có thể mở rộng, TensorRT Các công cụ thường được phục vụ bằng NVIDIA Triton Inference Server , quản lý các phiên bản mô hình và xử lý các yêu cầu đồng thời một cách hiệu quả.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay