Glossário

TensorRT

Optimiza os modelos de aprendizagem profunda com TensorRT para uma inferência mais rápida e eficiente nas GPUs NVIDIA . Obtém desempenho em tempo real com YOLO e aplicações de IA.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

TensorRT é um kit de desenvolvimento de software (SDK) para inferência de aprendizagem profunda de alto desempenho. Desenvolvido por NVIDIA, facilita a otimização de redes neurais treinadas para implantação em ambientes de produção, particularmente em NVIDIA GPUs. Foi concebido para pegar em modelos treinados de estruturas como PyTorch ou TensorFlow e optimizá-los para uma inferência mais rápida e eficiente, o que é crucial para aplicações em tempo real.

O que é TensorRT?

TensorRT é essencialmente um optimizador de inferência e um motor de tempo de execução. Pega um modelo de aprendizagem profunda treinado e aplica várias otimizações para melhorar seu desempenho durante a fase de inferência. Este processo envolve técnicas como a otimização de gráficos, a fusão de camadas, a quantização e o ajuste automático do kernel. Ao otimizar o modelo, o TensorRT reduz a latência e aumenta o rendimento, tornando possível implementar modelos de IA complexos em aplicações que exigem tempos de resposta rápidos.

TensorRT não é uma estrutura de treino; em vez disso, é utilizada depois de um modelo ter sido treinado utilizando estruturas como PyTorch ou TensorFlow. Concentra-se especificamente no estágio de implantação, garantindo que os modelos sejam executados da forma mais rápida e eficiente possível no hardware de destino, principalmente NVIDIA GPUs. Isto é particularmente valioso para aplicações executadas em dispositivos de ponta ou em centros de dados onde a velocidade de inferência e a utilização de recursos são críticas.

Como funciona o TensorRT

O processo de otimização em TensorRT envolve várias etapas fundamentais para melhorar o desempenho da inferência:

  • Otimização de gráficos: TensorRT analisa o gráfico da rede neural e o reestrutura para eliminar operações redundantes e simplificar o fluxo de execução. Isso pode incluir a remoção de camadas ou operações desnecessárias que não contribuem significativamente para o resultado final.
  • Fusão de camadas: Múltiplas camadas compatíveis são combinadas em uma única camada para reduzir a sobrecarga e melhorar a eficiência computacional. Por exemplo, camadas consecutivas de convolução, polarização e ReLU podem ser fundidas em uma única operação.
  • Quantização: TensorRT pode reduzir a precisão dos pesos e activações do modelo de vírgula flutuante (FP32 ou FP16) para formatos inteiros (INT8 ou mesmo inferior). Isso reduz os requisitos de largura de banda da memória e acelera o cálculo, especialmente em hardware otimizado para aritmética de números inteiros. Embora a quantização possa reduzir ligeiramente a precisão, TensorRT visa minimizar este impacto, melhorando significativamente a velocidade.
  • Kernel Auto-tuning: TensorRT seleciona a implementação mais eficiente (kernel) para cada operação de camada com base na arquitetura GPU alvo. Este processo de afinação automática garante que o modelo tira o máximo partido das capacidades do hardware subjacente.

Estas optimizações conduzem coletivamente a melhorias substanciais na velocidade e eficiência da inferência em comparação com a execução do modelo original não optimizado.

Aplicações de TensorRT

TensorRT é amplamente utilizado em várias aplicações em que a inferência em tempo real ou quase em tempo real é essencial. Dois exemplos concretos são:

  • Veículos autónomos: Nos veículos autónomos, a deteção rápida de objectos e a compreensão da cena são fundamentais para a segurança e a capacidade de resposta. Ultralytics YOLO Os modelos de sistemas de deteção de objectos, quando optimizados com TensorRT, podem atingir as velocidades de inferência necessárias nas plataformas NVIDIA DRIVE para processar dados de sensores em tempo real, permitindo uma rápida tomada de decisões para navegação e prevenção de obstáculos.
  • Análise de vídeo em tempo real: Para aplicações como vigilância de segurança ou monitorização de tráfego, o TensorRT permite o processamento de fluxos de vídeo de alta resolução para deteção, seguimento e análise de objectos com uma latência mínima. Isso permite alertas e ações imediatas com base em eventos detectados, como deteção de intrusão em sistemas de alarme de segurança ou análise de fluxo de tráfego para cidades inteligentes.

TensorRT é também benéfico noutras áreas, como a análise de imagens médicas, a robótica e os serviços de inferência baseados na nuvem, onde a baixa latência e o elevado débito são fundamentais.

TensorRT e Ultralytics YOLO

Ultralytics YOLO podem ser exportados e optimizados utilizando TensorRT para implementação em dispositivos NVIDIA . A documentação de exportação para Ultralytics YOLO fornece instruções detalhadas sobre como converter modelos YOLO para o formato TensorRT . Isto permite aos utilizadores tirar partido das capacidades de otimização do TensorRT para acelerar significativamente a velocidade de inferência dos seus modelos YOLO .

Para os utilizadores que implementam YOLOv8 em dispositivos NVIDIA Jetson Edge, a otimização TensorRT é muitas vezes um passo crucial para alcançar o desempenho em tempo real. Além disso, o DeepStream no NVIDIA Jetson aproveita o TensorRT para aplicativos de análise de vídeo de alto desempenho.

Vantagens da utilização TensorRT

A utilização do TensorRT oferece várias vantagens importantes para a implementação de modelos de aprendizagem profunda:

  • Aumenta a velocidade de inferência: As optimizações reduzem significativamente a latência da inferência e aumentam o rendimento, permitindo um desempenho em tempo real.
  • Latência reduzida: A menor latência é fundamental para aplicações que requerem respostas imediatas, como sistemas autónomos e análises em tempo real.
  • Utilização optimizada de recursos: A quantização e a otimização de gráficos levam à redução do espaço de memória e das demandas computacionais, tornando os modelos mais eficientes para execução em dispositivos com recursos limitados.
  • Aceleração de hardware: TensorRT foi concebido para maximizar a utilização das GPUs NVIDIA , garantindo um desempenho ótimo no hardware NVIDIA .
  • Prontidão de implantação: Fornece um ambiente de tempo de execução pronto para produção, simplificando o processo de implantação do modelo treinado para o aplicativo.

Em resumo, o TensorRT é uma ferramenta vital para os programadores que procuram implementar aplicações de inferência de aprendizagem profunda de elevado desempenho, especialmente quando utilizam GPUs NVIDIA . Ao otimizar os modelos para velocidade e eficiência, o TensorRT ajuda a colmatar a lacuna entre a investigação e a implementação no mundo real, tornando a IA avançada acessível e prática em vários sectores.

Lê tudo