TensorRT
Optimice los modelos de aprendizaje profundo con TensorRT para una inferencia más rápida y eficiente en las GPU NVIDIA. Consigue rendimiento en tiempo real con YOLO y las aplicaciones de IA.
TensorRT es un optimizador de inferencia de aprendizaje profundo de alto rendimiento y una biblioteca de tiempo de ejecución de NVIDIA. Se ha diseñado específicamente para maximizar el rendimiento de las redes neuronales (NN ) entrenadas en las unidades de procesamiento gráfico (GPU) de NVIDIA. Después de entrenar un modelo utilizando un marco como PyTorch o TensorFlow, TensorRT toma ese modelo y le aplica numerosas optimizaciones para prepararlo para su despliegue. El resultado es un motor de ejecución altamente eficiente que puede reducir significativamente la latencia de la inferencia y mejorar el rendimiento, lo que lo hace ideal para aplicaciones que requieren inferencia en tiempo real.
Cómo funciona TensorRT
TensorRT consigue sus mejoras de rendimiento a través de un proceso de optimización en varios pasos que transforma un modelo entrenado estándar en un motor de inferencia simplificado. Este proceso está automatizado en gran medida y adaptado a la arquitectura de GPU NVIDIA específica en la que se va a implantar. Entre las principales técnicas de optimización se incluyen
- Optimización de grafos: TensorRT analiza el modelo entrenado y realiza optimizaciones gráficas, como la eliminación de capas no utilizadas y la fusión de capas verticalmente (combinando capas secuenciales) y horizontalmente (combinando capas paralelas). Esto reduce el número de operaciones y la sobrecarga de memoria.
- Calibración de precisión: Soporta inferencia de menor precisión, como precisión mixta (FP16) e INT8. Al convertir los pesos del modelo de 32 bits de coma flotante (FP32) a precisiones más bajas mediante la cuantización del modelo, TensorRT reduce drásticamente el uso de memoria y los requisitos de cálculo con un impacto mínimo en la precisión.
- Ajuste automático del kernel: TensorRT selecciona de una amplia biblioteca de kernels de GPU optimizados para cada operación o crea sus propios kernels ajustados específicamente para la GPU de destino. Esto garantiza que cada cálculo se realice de la forma más eficiente posible en el hardware.
- Optimización de la memoria de los tensores: Optimiza el uso de memoria reutilizando la memoria de los tensores a lo largo de la ejecución del modelo, reduciendo la huella de memoria y mejorando el rendimiento.
Los modelos YOLO de Ultralytics pueden exportarse fácilmente al formato TensorRT, lo que permite a los desarrolladores aprovechar estas optimizaciones para sus aplicaciones de visión por computador (CV).
Aplicaciones reales
TensorRT es crucial para desplegar IA de alto rendimiento en entornos con recursos limitados y tiempo limitado.
- Vehículos autónomos: En los coches de conducción autónoma, los sistemas de percepción deben procesar los datos de cámaras y sensores en tiempo real para detectar peatones, otros vehículos y obstáculos. Modelos como Ultralytics YOLO11 optimizados con TensorRT pueden realizar la detección de objetos con una latencia extremadamente baja, lo que es fundamental para tomar decisiones de conducción seguras.
- Fabricación inteligente: En una fábrica, la IA en la fabricación se utiliza para el control de calidad automatizado. Una cámara capta imágenes de los productos en una cinta transportadora y un modelo de visión las analiza en busca de defectos. Gracias a TensorRT, estos sistemas pueden seguir el ritmo de las líneas de producción de alta velocidad, identificar los problemas al instante y mejorar la eficiencia general.
TensorRT frente a tecnologías relacionadas
Aunque TensorRT es un potente motor de inferencia, es importante entender en qué se diferencia de otras herramientas del ecosistema de la IA:
- Marcos de aprendizaje profundo: Frameworks como PyTorch y TensorFlow sirven principalmente para entrenar modelos. Aunque tienen sus propias capacidades de inferencia, no están tan optimizados para el despliegue como un tiempo de ejecución especializado como TensorRT.
- Tiempo de ejecución de ONNX: El formato Open Neural Network Exchange (ONNX ) proporciona una forma de representar modelos de forma interoperable. ONNX Runtime puede ejecutar modelos en varias plataformas de hardware, incluidas las GPUs NVIDIA (donde puede utilizar TensorRT como proveedor de ejecución). Sin embargo, la integración directa con TensorRT a menudo proporciona un mejor rendimiento en el hardware NVIDIA debido a sus optimizaciones específicas de hardware.
- Intel OpenVINO: OpenVINO es similar a TensorRT pero está optimizado para el hardware de Intel (CPUs, iGPUs, VPUs). Cumple el mismo propósito de acelerar la inferencia, pero está adaptado a un ecosistema de hardware diferente.
La principal ventaja de TensorRT es su profunda integración con el ecosistema NVIDIA, desde las GPU hasta las librerías CUDA, lo que permite obtener un rendimiento sin precedentes de los modelos implementados en plataformas NVIDIA, como se demuestra a menudo en las pruebas comparativas de MLPerf. La gestión de la implantación de modelos puede agilizarse aún más con plataformas de MLOps como Ultralytics HUB.