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 kit de desarrollo de software (SDK) de alto rendimiento desarrollado por
NVIDIA específicamente para optimizar y ejecutar
modelos de aprendizaje profundo. Funciona como un
motor de inferencia especializado que
redes neuronales entrenadas y las reestructura para ejecutarlas con la máxima eficiencia en NVIDIA
NVIDIA (GPU). A través de
de memoria, TensorRT reduce significativamente la latencia de la inferencia e incrementa la
la latencia de la inferencia y aumenta el rendimiento,
lo que la convierte en una herramienta esencial para los desarrolladores que crean aplicaciones que requieren respuestas inmediatas en tiempo real.
Cómo optimiza el rendimiento TensorRT
El objetivo principal de TensorRT es salvar la brecha entre un modelo entrenado en un marco flexible y un modelo desplegado
por velocidad. Lo consigue mediante varias técnicas de optimización sofisticadas:
-
Fusión de capas y optimización de grafos: TensorRT analiza la arquitectura de la red y fusiona múltiples
capas en una única operación. Por ejemplo, puede combinar una capa de
capa de convolución con un paso de polarización y activación.
Esta reducción del número de operaciones minimiza la sobrecarga de lanzamiento de kernels en la GPU.
-
Calibración de precisión: Para acelerar aún más el rendimiento, TensorRT soporta
cuantificación de modelos. Este proceso convierte
los pesos del modelo de 32 bits estándar de punto flotante (FP32) a formatos de menor precisión como
precisión mixta (FP16) o enteros de 8 bits (INT8).
Esto reduce drásticamente el uso de ancho de banda de memoria, manteniendo una alta precisión.
precisión.
-
Ajuste automático del kernel: Las distintas arquitecturas de GPU manejan las operaciones matemáticas de forma diferente.
TensorRT selecciona automáticamente las mejores capas de datos y algoritmos a partir de una amplia biblioteca de kernels optimizados,
garantizando que el modelo se ejecute de forma óptima en el hardware de destino específico, como una
NVIDIA Jetson o un centro de datos A100.
-
Memoria Tensor dinámica: El SDK optimiza la asignación de memoria reutilizando la memoria para los tensores (contenedores de datos
(contenedores de datos) que no se necesitan simultáneamente, reduciendo eficazmente la huella de memoria total durante el despliegue del modelo.
despliegue del modelo.
Aplicaciones reales de TensorRT
Debido a su capacidad para procesar cantidades masivas de datos con un retardo mínimo, TensorRT es ampliamente adoptado en industrias
que dependen de la visión por ordenador y de tareas complejas de IA.
-
Vehículos autónomos: En el campo de la
IA en automoción, los coches autónomos deben
procesar imágenes de vídeo procedentes de varias cámaras para detect peatones, señales y obstáculos al instante. Utilizando TensorRT
modelos de percepción como las redes de detección de objetos
pueden analizar fotogramas en milisegundos, lo que permite al sistema de control del vehículo tomar decisiones críticas para la seguridad sin retrasos.
retraso.
-
Fabricación inteligente: Las fábricas modernas utilizan
IA en la fabricación para la inspección
óptica automatizada. Las cámaras de alta velocidad capturan imágenes de los productos en las líneas de montaje y los modelos TensorRT identifican los defectos o las anomalías en tiempo real.
identifican defectos o anomalías en tiempo real. Esto garantiza que el control de calidad siga el ritmo de los entornos de producción de alta velocidad.
de producción de alta velocidad, a menudo desplegando dispositivos de IA en el borde
la planta de producción.
Uso de TensorRT con Ultralytics YOLO11
Integrar TensorRT en su flujo de trabajo es sencillo con las herramientas modernas de IA. El sitio ultralytics paquete
ofrece un método sencillo para convertir las
PyTorch en motores TensorRT . Esto permite a los usuarios
aprovechar la arquitectura de vanguardia de
Ultralytics YOLO11 con la aceleración por hardware de NVIDIA
GPU.
El siguiente ejemplo muestra cómo exportar un modelo YOLO11 a un archivo del motor TensorRT (.engine) y
utilizarlo para la inferencia:
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 frente a otras tecnologías de inferencia
Es importante distinguir TensorRT de otras herramientas del ecosistema del aprendizaje automático.
-
TensorRT frente a marcos de entrenamiento: Bibliotecas como PyTorch y
TensorFlow están diseñadas principalmente para
modelos de entrenamiento, priorizando la flexibilidad y la facilidad de depuración. TensorRT es estrictamente para
inferencia, priorizando la velocidad bruta y la eficiencia en hardware específico.
-
Tiempo de ejecución deTensorRT frente a ONNX : El
ONNX (Intercambio Abierto de Redes Neuronales)
está diseñado para la interoperabilidad entre diferentes plataformas. Mientras que
ONNX Runtime es un motor versátil que funciona en distintos tipos de hardware, TensorRT
proporciona optimizaciones más profundas, específicas del hardware y exclusivas de las GPU NVIDIA , que a menudo proporcionan un rendimiento superior al de los ejecutores genéricos.
ejecutores genéricos.
-
TensorRT vs. OpenVINO: Al igual que TensorRT está optimizado para el hardware de NVIDIA , el kit de herramientas de
OpenVINO está diseñado para acelerar la
inferencia en procesadores Intel (CPUs y GPUs integradas). La elección entre ellos depende enteramente de su despliegue
hardware.
Para las implantaciones escalables en la nube, los motores TensorRT suelen servirse utilizando el
NVIDIA Triton Inference Server, que gestiona las versiones del modelo
y maneja las solicitudes concurrentes de manera eficiente.