术语表

TensorRT

利用TensorRT 优化深度学习模型,在NVIDIA GPU 上实现更快、更高效的推理。通过YOLO 和人工智能应用实现实时性能。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

TensorRT 是由英伟达NVIDIA®)开发的高性能深度学习(DL)推理优化器和运行时库。 NVIDIA.它专为在NVIDIA ™NVIDIA ®)GPU 上运行的深度学习应用而设计,可最大限度地提高推理吞吐量并减少推理延迟。TensorRT 从各种框架中提取训练有素的神经网络模型,并进行大量优化,以生成高度优化的运行时引擎供部署使用。这一过程对于在生产环境中高效部署模型至关重要,尤其是在速度和响应速度至关重要的情况下。

主要功能和优化

TensorRT 通过几种复杂的技术显著提高了性能:

  • 精度校准:将模型精度从FP32降低到 FP16 或 INT8 等较低精度(混合精度模型量化),同时将精度损失降到最低,从而加快计算速度并降低内存使用量。
  • 层与Tensor 融合:将多个层或操作合并到一个内核中(层融合),减少内存带宽使用和内核启动开销。
  • 内核自动调整:为目标选择最佳的预执行算法(内核 NVIDIA GPU架构选择最佳的预实现算法(内核),确保特定硬件的最佳性能。
  • 动态Tensor 内存通过重复使用为生命周期不重叠的张量分配的内存,最大限度地减少内存占用。
  • 多流执行:可并行处理多个输入流。

TensorRT 如何工作

工作流程通常包括将训练有素的模型(例如来自 PyTorchTensorFlow等中间格式 ONNX),并将其输入TensorRT 优化器。TensorRT 对模型进行解析,根据指定精度和目标GPU 执行图优化和目标特定优化,最后生成优化推理计划,即TensorRT 引擎。然后就可以部署该引擎文件,进行快速推理。

人工智能和 ML 的相关性

TensorRT 与机器学习生命周期中的模型部署阶段密切相关。TensorRT 能够大大加快推理速度,这使它成为需要实时推理的应用不可或缺的工具,例如使用以下模型进行物体检测Ultralytics YOLO等模型进行物体检测、图像分割和自然语言处理。它是NVIDIA 软件堆栈中的一个关键组件,与下列工具NVIDIA CUDA等工具,使开发人员能够充分利用NVIDIA (NVIDIA ®)硬件的全部潜力,从强大的数据中心 GPU到用于边缘人工智能的高能效NVIDIA Jetson模块。Ultralytics 提供无缝集成,允许用户将 YOLO 模型导出为TensorRT 格式,以便优化部署,通常与Triton Inference Server 等平台一起使用。

实际应用

TensorRT 广泛应用于需要快速高效人工智能推理的各行各业:

  1. 自动驾驶汽车在自动驾驶汽车(人工智能在汽车中的应用)中,TensorRT 可优化在嵌入式NVIDIA DRIVE 平台上运行的感知模型(如物体检测和车道分割),确保对安全至关重要的实时决策。RTDETR等模型可使用TensorRT 进行优化,以便在此类系统中部署(RTDETRv2 与YOLOv5 比较)。
  2. 医疗图像分析医院和研究机构使用TensorRT 加快人工智能模型的推理速度,这些模型用于分析医疗扫描(CT、MRI),以完成肿瘤检测或异常识别等任务(医疗保健领域的人工智能),从而加快诊断速度并支持临床工作流程。这通常是大型计算机视觉 (CV)系统的一部分。

TensorRT 与相关技术的对比

虽然TensorRT 专注于专门针对NVIDIA )GPU 的推理优化,但生态系统中也存在其他工具:

  • 深度学习框架(PyTorchTensorFlow):这些框架主要用于训练模型,但也提供基本的推理能力。TensorRT 可优化在这些框架中训练的模型,以便部署。
  • ONNX 运行时跨平台推理引擎,支持多种硬件加速器,包括NVIDIA (NVIDIA ®)GPU(通常使用TensorRT 作为执行提供程序)、CPU 等。它提供更广泛的硬件兼容性,但在NVIDIA 硬件上可能无法实现与TensorRT 直接相同的优化水平。
  • Intel OpenVINO与TensorRT 类似,但针对Intel 硬件(CPU、iGPU、VPU)进行了优化。Ultralytics 模型也可以导出为OpenVINO 格式

TensorRT 的关键优势在于其与NVIDIA )硬件的深度集成,以及专为 GPU 量身定制的积极优化策略,与更通用的运行时相比,TensorRT 经常能在NVIDIA )平台上实现最高的性能基准(参见MLPerf 基准)。使用Ultralytics HUB 等平台可以简化模型和部署管理。

阅读全部