TensorRT es un optimizador de inferencia de aprendizaje profundo de alto rendimiento y una biblioteca de tiempo de ejecución desarrollada por NVIDIA. Acelera los modelos de aprendizaje profundo enlas Unidades de Procesamiento Gráfico (GPU) de NVIDIA aplicando diversas técnicas de optimización. El objetivo principal de TensorRT es conseguir la menor latencia de inferencia posible y el mayor rendimiento para los modelos desplegados en entornos de producción, lo que lo hace crucial para las aplicaciones de inferencia en tiempo real.
Cómo funciona TensorRT
TensorRT toma una red neuronal entrenada, a menudo exportada desde frameworks como PyTorch o TensorFlowy la optimiza específicamente para laGPU NVIDIA de destino. Los pasos clave de la optimización incluyen:
- Optimización de grafos: Fusionar capas y eliminar operaciones redundantes para crear un gráfico de cálculo más eficiente.
- Calibración de precisión: Reducir la precisión numérica de los pesos del modelo (por ejemplo, de FP32 a FP16 o INT8) con un impacto mínimo en la precisión, lo que acelera significativamente los cálculos y reduce el uso de memoria.
- Autoajuste del núcleo: Selección de los mejores algoritmos preimplementados (kernels) de las librerías de NVIDIA(cuDNN, cuBLAS) para las capas específicas del modelo y la GPU de destino.
- Memoria Tensor Dinámica: Minimizar la huella de memoria reutilizando la memoria asignada a los tensores.
Estas optimizaciones dan como resultado un motor de inferencia en tiempo de ejecución muy eficiente, adaptado al modelo y al hardware específicos.
Relevancia para Ultralytics
TensorRT es un objetivo de despliegue clave para los modelosYOLO de Ultralytics . Los usuarios pueden exportar sus modelos Ultralytics YOLO entrenados al formato TensorRT para conseguir importantes aumentos de velocidad en el hardware NVIDIA , incluidos los dispositivos de borde como NVIDIA Jetson. Esto permite aplicaciones de alto rendimiento en diversos campos. Las páginas de comparación de modelos, como la comparaciónYOLOv5 vs RT-DETR , a menudo muestran las velocidades de inferencia conseguidas utilizando la optimización TensorRT . Ultralytics también proporciona guías para la integración con plataformas NVIDIA , como la guía DeepStream en NVIDIA Jetson.
Aplicaciones en el mundo real
TensorRT se utiliza ampliamente cuando es fundamental una inferencia rápida y eficiente en el hardware NVIDIA :
- Vehículos autónomos: Los coches autónomos dependen del procesamiento de grandes cantidades de datos de sensores en tiempo real. TensorRT acelera los modelos de detección de objetos, segmentación y planificación de trayectorias, lo que permite tomar decisiones rápidas esenciales para la seguridad. Se trata de un componente esencial de la IA en las soluciones de automoción.
- Análisis de vídeo y ciudades inteligentes: El procesamiento de múltiples secuencias de vídeo de alta resolución para tareas como la supervisión del tráfico, el análisis de multitudes o la vigilancia de la seguridad requiere una inmensa potencia de cálculo. TensorRT optimiza modelos como Ultralytics YOLOv8 para gestionar eficientemente estas exigentes cargas de trabajo en servidores o dispositivos periféricos, impulsando soluciones de IA para ciudades inteligentes.
TensorRT frente a términos similares
- ONNX (Intercambio abierto de redes neuronales): ONNX es un formato abierto para representar modelos de aprendizaje profundo. Aunque TensorRT puede importar modelos del formato ONNX , el propio ONNX es independiente del hardware, mientras que TensorRT es específicamente un optimizador y un tiempo de ejecución para GPUs NVIDIA . Los modelos Ultralytics pueden exportarse a ONNX.
- OpenVINO: Similar a TensorRT, OpenVINO es un conjunto de herramientas de optimización de la inferencia, pero está desarrollado por Intel y se dirige principalmente al hardware Intel (CPUs, iGPUs, VPUs). Más información sobre la integración deUltralytics OpenVINO .
- PyTorch / TensorFlow: Son marcos de aprendizaje profundo utilizados principalmente para entrenar modelos. TensorRT optimiza los modelos después de haber sido entrenados utilizando estos marcos, preparándolos para un despliegue eficiente del modelo.