TensorRT
利用TensorRT 优化深度学习模型,在NVIDIA ®)GPU 上实现更快、更高效的推理。利用YOLO 和 AI 应用程序实现实时性能。
TensorRT 是一款高性能软件开发工具包(SDK),由以下公司开发
NVIDIA开发的高性能软件开发工具包(SDK
深度学习模型。它作为一个
专门的推理引擎,可将训练有素的
神经网络进行重组,以便在NVIDIA
)图形处理器(GPU
图形处理器(GPU)上以最高效率运行。通过
通过精简计算图和管理内存使用,TensorRT 显著减少了TensorRT 延迟,提高了吞吐量。
推理延迟并提高吞吐量、
使其成为开发人员构建需要即时、实时响应的应用程序的重要工具。
TensorRT 如何优化性能
TensorRT 的主要目标是弥合在灵活框架中训练的模型与为提高速度而部署的模型之间的差距。
之间的差距。它通过几种复杂的优化技术来实现这一目标:
-
层融合和图优化: TensorRT 可分析网络架构,并将多个
层融合到单个操作中。例如,它可以将卷积层
卷积层与偏置和激活步骤。
这种操作数量的减少最大限度地降低了在GPU 上启动内核的开销。
-
精确校准:为进一步加快性能,TensorRT 支持
模型量化。这一过程可将
模型权重从标准 32 位浮点数 (FP32) 转换为较低精度格式,如混合精度 (FP16) 或 8 位整数 (INT8)。
混合精度(FP16) 或 8 位整数 (INT8) 等较低精度格式。
这大大减少了内存带宽的使用,同时保持了高
精度。
-
内核自动调整:不同的GPU 架构处理数学运算的方式各不相同。
TensorRT 可从庞大的优化内核库中自动选择最佳数据层和算法、
确保模型在特定的目标硬件上以最佳方式运行,例如英伟达™(NVIDIA®) Jetson
NVIDIA Jetson或数据中心 A100。
-
动态Tensor 内存:SDK 通过重复使用内存来优化内存分配。
容器)的内存,从而优化内存分配。
模型部署过程中的总体内存占用。
TensorRT的实际应用
由于TensorRT 能够以最小的延迟处理海量数据,因此在依赖计算机视觉和复杂人工智能任务的行业中被广泛采用。
依靠计算机视觉和复杂的人工智能任务。
-
自动驾驶汽车:在汽车人工智能领域
在汽车人工智能领域,自动驾驶汽车必须
处理来自多个摄像头的视频馈送,以即时detect 行人、标志和障碍物。使用TensorRT、
物体检测网络等感知模型
可以在几毫秒内对帧进行分析,从而使汽车控制系统在做出对安全至关重要的决策时不会出现延迟。
滞后。
-
智能制造:现代工厂利用
在制造业中利用人工智能进行自动光学
检测。高速摄像头捕捉装配线上的产品图像,TensorRT模型可实时识别缺陷或异常。
缺陷或异常。这确保了质量控制与高速生产环境保持同步。
这可确保质量控制与高速生产环境保持同步。
工厂车间。
将TensorRT 与Ultralytics YOLO11结合使用
使用现代人工智能工具,将TensorRT 集成到工作流程中非常简单。TensorRT ultralytics 软件包
提供了一种无缝的方法来转换标准
PyTorch 模型到TensorRT 引擎中。这使得用户可以
利用最先进的
Ultralytics YOLO11 的NVIDIA
。
图形处理器。
下面的示例演示了如何将YOLO11 模型导出为TensorRT 引擎文件 (.engine) 并
并将其用于推理:
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 与其他推理技术的比较
必须将TensorRT 与机器学习生态系统中的其他工具区分开来。
-
TensorRT 与训练框架: PyTorch 和
TensorFlow等库主要是为
训练模型,优先考虑灵活性和调试的简便性。TensorRT 严格用于
推理,优先考虑在特定硬件上的原始速度和效率。
-
TensorRT 与ONNX 运行时:的
ONNX (开放神经网络交换)
格式旨在实现不同平台间的互操作性。而
ONNX Runtime是一个可在各种硬件上运行的通用引擎,而TensorRT
提供了NVIDIA ®)GPU 独有的更深层次的特定硬件优化,其性能往往高于
一般的运行引擎性能更高。
-
TensorRT 与OpenVINO的对比:与TensorRT 针对NVIDIA 硬件进行优化的方式类似, OpenVINO工具包也是专为加速NVIDIA 硬件而设计的。
OpenVINO 工具包则是为加速英特尔处理器(CPU 和集成 GPU)上的
Intel 处理器(CPU 和集成 GPU)上进行推理。在两者之间做出选择完全取决于您部署的
硬件。
对于可扩展的云部署,TensorRT 引擎通常使用
NVIDIA Triton 推理服务器提供服务。
并高效处理并发请求。