TensorRT
Otimize os modelos de deep learning com o TensorRT para uma inferência mais rápida e eficiente nas GPUs NVIDIA. Obtenha desempenho em tempo real com YOLO e aplicações de AI.
O TensorRT é um otimizador de inferência de aprendizado profundo de alto desempenho e uma biblioteca de tempo de execução da NVIDIA. Ela foi projetada especificamente para maximizar o desempenho de redes neurais (NN) treinadas em unidades de processamento gráfico (GPUs) da NVIDIA. Depois que um modelo é treinado usando uma estrutura como PyTorch ou TensorFlow, o TensorRT pega esse modelo e aplica várias otimizações para prepará-lo para implantação. O resultado é um mecanismo de tempo de execução altamente eficiente que pode reduzir significativamente a latência da inferência e melhorar a taxa de transferência, tornando-o ideal para aplicativos que exigem inferência em tempo real.
Como funciona o TensorRT
O TensorRT obtém os seus ganhos de desempenho através de um processo de otimização em várias etapas que transforma um modelo treinado padrão num motor de inferência simplificado. Este processo é amplamente automatizado e adaptado à arquitetura específica da GPU NVIDIA em que será implementado. As principais técnicas de otimização incluem:
- Otimização de gráficos: O TensorRT analisa o modelo treinado e executa optimizações de gráficos, como a eliminação de camadas não utilizadas e a fusão de camadas verticalmente (combinando camadas sequenciais) e horizontalmente (combinando camadas paralelas). Isso reduz o número de operações e a sobrecarga de memória.
- Calibração de precisão: Suporta inferência de precisão inferior, como precisão mista (FP16) e INT8. Ao converter os pesos do modelo de ponto flutuante de 32 bits (FP32) para precisões inferiores através da quantização do modelo, o TensorRT reduz drasticamente a utilização de memória e os requisitos computacionais com um impacto mínimo na precisão.
- Auto-ajuste do kernel: O TensorRT seleciona a partir de uma vasta biblioteca de kernels de GPU optimizados para cada operação ou cria os seus próprios kernels especificamente ajustados para a GPU alvo. Isso garante que cada cálculo seja realizado da forma mais eficiente possível no hardware.
- Otimização da memória do tensor: Optimiza a utilização da memória através da reutilização da memória para tensores ao longo da execução do modelo, reduzindo o espaço de memória e melhorando o desempenho.
Os modelos Ultralytics YOLO podem ser facilmente exportados para o formato TensorRT, permitindo que os programadores aproveitem estas optimizações para as suas aplicações de visão por computador (CV).
Aplicações no mundo real
O TensorRT é crucial para a implementação de IA de elevado desempenho em ambientes sensíveis ao tempo e com recursos limitados.
- Veículos autónomos: Nos veículos autónomos, os sistemas de perceção devem processar dados de câmaras e sensores em tempo real para detetar peões, outros veículos e obstáculos. Modelos como o Ultralytics YOLO11 otimizado com TensorRT podem realizar a deteção de objetos com latência extremamente baixa, o que é fundamental para a tomada de decisões de direção seguras.
- Fabrico inteligente: No chão de fábrica, a IA no fabrico é utilizada para o controlo de qualidade automatizado. Uma câmara capta imagens de produtos numa correia transportadora e um modelo de visão analisa-as para detetar defeitos. Ao utilizar o TensorRT, estes sistemas podem acompanhar o ritmo das linhas de produção de alta velocidade, identificando problemas instantaneamente e melhorando a eficiência geral.
TensorRT vs. Tecnologias relacionadas
Embora o TensorRT seja um poderoso motor de inferência, é importante compreender a sua diferença em relação a outras ferramentas do ecossistema de IA:
- Estruturas de aprendizagem profunda: Frameworks como PyTorch e TensorFlow são principalmente para modelos de treinamento. Embora tenham seus próprios recursos de inferência, eles não são tão otimizados para implantação quanto um tempo de execução especializado como o TensorRT.
- Tempo de execução ONNX: O formato Open Neural Network Exchange (ONNX) fornece uma maneira de representar modelos de forma interoperável. O ONNX Runtime pode executar modelos em várias plataformas de hardware, incluindo GPUs NVIDIA (onde ele pode usar o TensorRT como um provedor de execução). No entanto, a integração direta com o TensorRT produz frequentemente um melhor desempenho no hardware NVIDIA devido às suas optimizações específicas de hardware.
- Intel OpenVINO: O OpenVINO é semelhante ao TensorRT, mas está optimizado para hardware Intel (CPUs, iGPUs, VPUs). Tem o mesmo objetivo de acelerar a inferência, mas está adaptado a um ecossistema de hardware diferente.
A principal vantagem do TensorRT é sua profunda integração com o ecossistema NVIDIA, de GPUs a bibliotecas CUDA, permitindo um desempenho incomparável para modelos implantados em plataformas NVIDIA, como frequentemente mostrado em benchmarks MLPerf. O gerenciamento da implantação de modelos pode ser ainda mais simplificado com plataformas MLOps como o Ultralytics HUB.