TensorRT
Otimize modelos de deep learning com o TensorRT para uma inferência mais rápida e eficiente em GPUs NVIDIA . Obtenha desempenho em tempo real com YOLO e aplicações de AI.
TensorRT é um kit de desenvolvimento de software (SDK) de alto desempenho desenvolvido pela
NVIDIA especificamente para otimizar e executar
modelos de aprendizagem profunda. Ele funciona como um
mecanismo de inferência especializado que usa redes neurais
redes neurais treinadas e as reestrutura para serem executadas com NVIDIA
máxima eficiência nas
Unidades de Processamento Gráfico (GPUs). Ao
simplificando o gráfico computacional e gerindo a utilização da memória, TensorRT reduz significativamente a
a latência de inferência e aumenta a taxa de transferência,
tornando-o uma ferramenta essencial para os programadores que criam aplicações que requerem respostas imediatas e em tempo real.
Como TensorRT optimiza o desempenho
O principal objetivo do TensorRT é colmatar a lacuna entre um modelo treinado numa estrutura flexível e um modelo implementado
para velocidade. Consegue-o através de várias técnicas de otimização sofisticadas:
-
Fusão de camadas e otimização de gráficos: TensorRT analisa a arquitetura da rede e funde várias camadas
camadas numa única operação. Por exemplo, ele pode combinar uma
camada de convolução com uma etapa de polarização e ativação.
Essa redução no número de operações minimiza a sobrecarga de lançamento de kernels na GPU.
-
Calibração de precisão: Para acelerar ainda mais o desempenho, TensorRT suporta
quantização de modelos. Este processo converte
converte os pesos do modelo de ponto flutuante padrão de 32 bits (FP32) para formatos de precisão
precisão mista (FP16) ou inteiros de 8 bits (INT8).
Isto reduz drasticamente a utilização da largura de banda da memória, mantendo uma elevada
precisão.
-
Auto-ajuste do kernel: Diferentes arquitecturas GPU lidam com operações matemáticas de forma diferente.
TensorRT seleciona automaticamente as melhores camadas de dados e algoritmos a partir de uma vasta biblioteca de kernels optimizados,
garantindo que o modelo seja executado de forma ideal no hardware de destino específico, como um
NVIDIA Jetson ou um centro de dados A100.
-
Memória Tensor Dinâmica: O SDK optimiza a atribuição de memória, reutilizando a memória para tensores (contentores de dados
(contentores de dados) que não são necessários em simultâneo, reduzindo efetivamente o espaço total de memória durante a
implantação do modelo.
Aplicações do TensorRT no mundo real
Devido à sua capacidade de processar grandes quantidades de dados com um atraso mínimo, TensorRT é amplamente adotado nas indústrias
que dependem da visão por computador e de tarefas complexas de IA.
-
Veículos autónomos: No domínio da
IA no sector automóvel, os veículos autónomos devem
processar feeds de vídeo de várias câmaras para detect instantaneamente peões, sinais e obstáculos. Utilizando o TensorRT,
modelos de perceção como redes de deteção de objectos
podem analisar fotogramas em milissegundos, permitindo que o sistema de controlo do veículo tome decisões críticas em termos de segurança sem
atraso.
-
Fabrico inteligente: As fábricas modernas utilizam
IA no fabrico para inspeção ótica automatizada
inspeção ótica automatizada. As câmaras de alta velocidade captam imagens de produtos nas linhas de montagem e os modelos TensorRT identificam
defeitos ou anomalias em tempo real. Isto garante que o controlo de qualidade acompanha o ritmo da produção a alta velocidade
de produção de alta velocidade, sendo muitas vezes implementado em dispositivos de IA de
no chão de fábrica.
Utilização do TensorRT com o Ultralytics YOLO11
A integração do TensorRT no seu fluxo de trabalho é simples com as modernas ferramentas de IA. O ultralytics pacote
fornece um método simples para converter os ficheiros
PyTorch em motores TensorRT . Isto permite aos utilizadores
aproveitem a arquitetura de ponta do
Ultralytics YOLO11 com a aceleração de hardware das GPUs NVIDIA
GPUs.
O exemplo seguinte demonstra como exportar um modelo YOLO11 para um ficheiro do motor TensorRT (.engine) e
utilizá-lo para a inferência:
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 vs. outras tecnologias de inferência
É importante distinguir TensorRT de outras ferramentas no ecossistema de aprendizagem automática.
-
TensorRT vs. Estruturas de treino: Bibliotecas como PyTorch e
TensorFlow são projetadas principalmente para
modelos de treinamento, priorizando a flexibilidade e a facilidade de depuração. TensorRT é estritamente para
inferência, dando prioridade à velocidade bruta e à eficiência em hardware específico.
-
Tempo de execuçãoTensorRT vs. ONNX : O
ONNX (Open Neural Network Exchange)
foi concebido para a interoperabilidade entre diferentes plataformas. Enquanto o
ONNX Runtime é um motor versátil que funciona em vários hardwares, TensorRT
fornece optimizações mais profundas e específicas de hardware, exclusivas para GPUs NVIDIA , muitas vezes produzindo um desempenho superior ao dos
executores genéricos.
-
TensorRT vs. OpenVINO: Da mesma forma que TensorRT é optimizado para hardware NVIDIA , o kit de ferramentas
kit de ferramentasOpenVINO foi projetado para acelerar a
inferência em processadores Intel (CPUs e GPUs integradas). A escolha entre eles depende inteiramente da sua implantação
hardware.
Para implantações em nuvem escalonáveis, os mecanismos TensorRT são frequentemente servidos usando o
Servidor de InferênciaNVIDIA Triton , que gerencia versões de modelos
e lida com solicitações simultâneas de forma eficiente.