TensorRT
TensorRT es el SDK de NVIDIA que compila redes neuronales entrenadas en motores optimizados para inferencias rápidas en una sola GPU. Descubre cómo optimiza los modelos y consulta el código.
TensorRT es el SDK de NVIDIA para la inferencia de aprendizaje profundo de alto rendimiento en GPU de NVIDIA. Recibe una red entrenada, normalmente en un archivo ONNX, y durante la fase de compilación la convierte en un motor, también llamado archivo de plan: un programa específico para la GPU que fusiona capas, se ejecuta con precisión reducida y utiliza los kernels más rápidos medidos en la GPU de destino. Durante la fase de ejecución, una aplicación carga el motor y lo ejecuta, normalmente con menor latencia de inferencia y mayor rendimiento que el framework original. TensorRT se distribuye como bibliotecas de C++ y Python, además de la herramienta de línea de comandos trtexec; su versión principal actual es TensorRT 11, cuya versión 11.4 estaba disponible en octubre de 2026.
Cómo optimiza TensorRT un modelo#
El constructor aplica varias optimizaciones al grafo de la red:
- Fusión de capas y tensores: Una convolución, su sesgo y su activación se convierten en un único kernel, y desaparecen las capas cuyas salidas nunca se utilizan, por lo que los resultados intermedios permanecen en el chip en lugar de ir y volver de la memoria de la GPU.
- Precisión reducida: FP16 y BF16 reducen a la mitad el tráfico de memoria en comparación con FP32; INT8 y FP8 lo reducen de nuevo a la mitad, e INT4 (solo para pesos) y FP4 permiten reducirlo aún más en las GPU recientes, una forma de cuantización de modelos. TensorRT 11 eliminó las opciones del constructor FP16 e INT8 y la calibración INT8 implícita de TensorRT 10, y ahora exige redes fuertemente tipadas, en las que los nodos de conversión y los pares de cuantización y des cuantización declaran la precisión de cada capa. El Model Optimizer de NVIDIA puede insertar esos nodos en un archivo ONNX.
- Ajuste automático de kernels: Para cada capa, el constructor mide en la GPU real las implementaciones candidatas, llamadas tácticas, y conserva la más rápida.
- Planificación de memoria: Los búferes de activación se reutilizan entre las capas cuyos periodos de vida no coinciden, lo que reduce la huella de memoria del motor.
- Formas dinámicas: Los perfiles de optimización con formas mínima, óptima y máxima permiten que un solo motor acepte distintos tamaños de lote o resoluciones de imagen, optimizados para la forma óptima.
Compilar un motor puede llevar varios minutos y el resultado depende del hardware. De forma predeterminada, un motor solo se ejecuta en el tipo de GPU en que se compiló y con la misma versión de TensorRT; los motores compatibles con el hardware y con distintas versiones sacrifican algo de velocidad a cambio de portabilidad. Por eso, las implementaciones conservan el archivo ONNX y compilan los motores en los dispositivos donde se ejecutarán:
Exportar un modelo a TensorRT#
Los modelos de Ultralytics YOLO26 se exportan a TensorRT con model.export(format="engine"), que primero genera un archivo ONNX y después compila el motor en la GPU local, en FP16 con quantize=16 o en INT8 con quantize=8, calibrado con imágenes del conjunto de datos data. En TensorRT 11, la exportación aplica estas precisiones mediante Model Optimizer, ya que la API fuertemente tipada así lo exige:
from ultralytics import YOLO
# Compila un motor TensorRT FP16 en la GPU NVIDIA local (genera yolo26n.engine)
model = YOLO("yolo26n.pt")
model.export(format="engine", quantize=16)
# Carga el motor y ejecuta la inferencia con la misma API
trt_model = YOLO("yolo26n.engine")
results = trt_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_tensorrt.jpg")La imagen guardada muestra las detecciones que el motor FP16 produjo en la foto del autobús, mediante la misma interfaz YOLO que el modelo PyTorch.
TensorRT frente a herramientas relacionadas#
- ONNX: El formato de modelo portable que TensorRT consume con mayor frecuencia. Un archivo ONNX puede compilarse en motores independientes para una GPU de centro de datos y un módulo integrado.
- ONNX Runtime con el proveedor de ejecución TensorRT: Ejecuta como motores TensorRT los subgrafos compatibles con TensorRT y recurre a kernels de CUDA o CPU para el resto, manteniendo la API de ONNX Runtime.
- PyTorch: El framework en el que se entrenan la mayoría de los modelos. Torch-TensorRT compila modelos PyTorch directamente con TensorRT, sin necesidad de un paso ONNX independiente.
- Otros motores de inferencia: OpenVINO para hardware Intel, Core ML para dispositivos Apple y LiteRT para Android y dispositivos integrados cumplen la misma función en otros chips.
- TensorRT-LLM: Biblioteca de código abierto de NVIDIA para la inferencia de modelos de lenguaje de gran tamaño, ahora basada en PyTorch, con kernels de atención optimizados, cuantización, decodificación especulativa y paralelismo con varias GPU.
Aplicaciones en el mundo real#
- Analítica de vídeo: El SDK DeepStream de NVIDIA ejecuta motores TensorRT en flujos de procesamiento con varias cámaras para la analítica del comercio minorista, el tráfico y la seguridad, donde varios flujos comparten una misma GPU.
- Inspección industrial: Las cámaras de las líneas de producción rápidas necesitan inferencias en tiempo real dentro del tiempo que cada pieza permanece a la vista, algo que los motores de precisión reducida hacen posible en GPU compactas.
- Vehículos autónomos: Las redes de percepción para vehículos autónomos se ejecutan como motores TensorRT en plataformas NVIDIA DRIVE, como DRIVE AGX Orin y Thor.
- Robótica y dispositivos periféricos: Los módulos NVIDIA Jetson incluyen TensorRT con JetPack. TensorRT 11.4 no es compatible con JetPack, así que las implementaciones en Jetson compilan sus motores con la versión de TensorRT 10 que incluye su versión de JetPack.










