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à ứng dụng AI.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

TensorRT là trình tối ưu hóa suy luận Deep Learning (DL) hiệu suất cao và thư viện thời gian chạy được NVIDIA phát triển. Nó được thiết kế đặc biệt để tối đa hóa thông lượng suy luận và giảm thiểu độ trễ suy luận cho các ứng dụng học sâu chạy trên GPU NVIDIA . TensorRT lấy các mô hình mạng nơ-ron đã được đào tạo từ nhiều khuôn khổ khác nhau và áp dụng nhiều tối ưu hóa để tạo ra một công cụ thời gian chạy được tối ưu hóa cao để triển khai. Quy trình này rất quan trọng để triển khai các mô hình hiệu quả trong môi trường sản xuất, đặc biệt là khi tốc độ và khả năng phản hồi là yếu tố quan trọng.

Các tính năng chính và tối ưu hóa

TensorRT đạt được những cải tiến hiệu suất đáng kể thông qua một số kỹ thuật tinh vi:

  • Hiệu chuẩn độ chính xác: Giảm độ chính xác của mô hình từ FP32 xuống các độ chính xác thấp hơn như FP16 hoặc INT8 ( độ chính xác hỗn hợp hoặc lượng tử hóa mô hình ) với mức giảm độ chính xác tối thiểu, giúp tính toán nhanh hơn và sử dụng ít bộ nhớ hơn.
  • Layer và Tensor Fusion: Kết hợp nhiều lớp hoặc hoạt động thành một hạt nhân duy nhất ( Layer Fusion ), giảm việc sử dụng băng thông bộ nhớ và chi phí khởi chạy hạt nhân.
  • Tự động điều chỉnh hạt nhân: Chọn các thuật toán được triển khai sẵn tốt nhất (hạt nhân) cho kiến trúc GPU NVIDIA mục tiêu, đảm bảo hiệu suất tối ưu cho phần cứng cụ thể.
  • Bộ nhớ Tensor động: Giảm thiểu dung lượng bộ nhớ bằng cách sử dụng lại bộ nhớ được phân bổ cho các tenxơ có thời gian tồn tại không chồng chéo.
  • Thực thi đa luồng: Cho phép xử lý song song nhiều luồng đầu vào.

Làm sao TensorRT Tác phẩm

Quy trình làm việc thường bao gồm việc lấy một mô hình đã được đào tạo (ví dụ, từ PyTorch hoặc TensorFlow , thường thông qua một định dạng trung gian như ONNX ) và đưa nó vào TensorRT trình tối ưu hóa. TensorRT phân tích mô hình, thực hiện tối ưu hóa đồ thị và tối ưu hóa mục tiêu cụ thể dựa trên độ chính xác và mục tiêu đã chỉ định GPU và cuối cùng tạo ra một kế hoạch suy luận được tối ưu hóa, được gọi là TensorRT engine. Tệp engine này sau đó có thể được triển khai để suy luận nhanh.

Sự liên quan trong AI và ML

TensorRT có liên quan cao đến giai đoạn triển khai mô hình của vòng đời học máy . Khả năng tăng tốc đáng kể suy luận của nó làm cho nó trở nên không thể thiếu đối với các ứng dụng yêu cầu suy luận thời gian thực , chẳng hạn như phát hiện đối tượng với các mô hình như Ultralytics YOLO , phân đoạn hình ảnh và xử lý ngôn ngữ tự nhiên. Nó là một thành phần quan trọng trong NVIDIA phần mềm, cùng với các công cụ như CUDA , cho phép các nhà phát triển tận dụng toàn bộ tiềm năng của NVIDIA phần cứng, từ GPU trung tâm dữ liệu mạnh mẽ đến các mô-đun NVIDIA Jetson tiết kiệm năng lượng cho Edge AI . Ultralytics cung cấp khả năng tích hợp liền mạch, cho phép người dùng xuất các mô hình YOLO sang định dạng TensorRT để triển khai tối ưu, thường được sử dụng với các nền tảng như Triton Inference Server .

Ứng dụng trong thế giới thực

TensorRT được sử dụng rộng rãi trong nhiều ngành công nghiệp khác nhau, nơi cần suy luận AI nhanh chóng và hiệu quả:

  1. Xe tự hành : Trong xe tự lái ( AI trong ô tô ), TensorRT tối ưu hóa các mô hình nhận thức (như phát hiện đối tượng và phân đoạn làn đường) chạy trên nhúng NVIDIA Nền tảng DRIVE, đảm bảo việc ra quyết định theo thời gian thực là rất quan trọng đối với sự an toàn. Các mô hình như RTDETR có thể được tối ưu hóa bằng cách sử dụng TensorRT để triển khai trong các hệ thống như vậy ( So sánh RTDETRv2 với YOLOv5 ).
  2. Phân tích hình ảnh y tế : Bệnh viện và các viện nghiên cứu sử dụng TensorRT để tăng tốc quá trình suy luận của các mô hình AI phân tích các bản quét y tế (CT, MRI) cho các nhiệm vụ như phát hiện khối u hoặc xác định dị thường ( AI trong chăm sóc sức khỏe ), cho phép chẩn đoán nhanh hơn và hỗ trợ quy trình làm việc lâm sàng. Điều này thường là một phần của các hệ thống Thị giác máy tính (CV) lớn hơn.

TensorRT so với Công nghệ liên quan

Trong khi TensorRT tập trung vào việc tối ưu hóa suy luận cụ thể cho NVIDIA GPU và các công cụ khác hiện hữu trong hệ sinh thái:

  • Khung học sâu ( PyTorch , TensorFlow ): Chúng chủ yếu được sử dụng để đào tạo mô hình nhưng cũng cung cấp khả năng suy luận cơ bản. TensorRT tối ưu hóa các mô hình được đào tạo trong các khuôn khổ này để triển khai.
  • ONNX Runtime : Một công cụ suy luận đa nền tảng hỗ trợ nhiều bộ tăng tốc phần cứng, bao gồm NVIDIA GPU (thường sử dụng TensorRT như một nhà cung cấp thực thi), CPU và các loại khác. Nó cung cấp khả năng tương thích phần cứng rộng hơn nhưng có thể không đạt được cùng mức tối ưu hóa trên NVIDIA phần cứng như TensorRT trực tiếp.
  • Intel OpenVINO : Tương tự như TensorRT nhưng được tối ưu hóa cho Intel phần cứng (CPU, iGPU, VPU). Ultralytics mô hình cũng có thể được xuất sang định dạng OpenVINO .

TensorRT Điểm khác biệt chính của 'là sự tích hợp sâu sắc với NVIDIA phần cứng và các chiến lược tối ưu hóa mạnh mẽ của nó được thiết kế riêng cho GPU, thường mang lại điểm chuẩn hiệu suất cao nhất (xem Điểm chuẩn MLPerf ) trên NVIDIA nền tảng so với thời gian chạy mục đích chung hơn. Quản lý mô hình và triển khai có thể được sắp xếp hợp lý bằng cách sử dụng các nền tảng như Ultralytics HUB .

Đọc tất cả