Torch-D-Tensorrt traz o poder de Tensorrt para Pytorch. Acelere a latência de inferência em até 5x em comparação com a execução ansiosa em apenas uma linha de código.
As versões estáveis do-Tensorrt são publicadas no Pypi
pip install torch-tensorrtAs versões noturnas do TOCH-D-TENSORRT são publicadas no Índice de Pacote Pytorch
pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124O-Tensorrt também é distribuído no contêiner Pytorch NGC NGC pronto para executar, que possui todas as dependências com as versões adequadas e os notebooks de exemplo incluídos.
Para métodos de instalação mais avançados, consulte aqui
Você pode usar-sensorrt em qualquer lugar que use torch.compile :
import torch
import torch_tensorrt
model = MyModel (). eval (). cuda () # define your model here
x = torch . randn (( 1 , 3 , 224 , 224 )). cuda () # define what the inputs to the model will look like
optimized_model = torch . compile ( model , backend = "tensorrt" )
optimized_model ( x ) # compiled on first run
optimized_model ( x ) # this will be fast!Se você deseja otimizar seu modelo antes do tempo e/ou implantar em um ambiente C ++, a Torch-Tensorrt fornece um fluxo de trabalho no estilo de exportação que serializa um módulo otimizado. Este módulo pode ser implantado em Pytorch ou com Libtorch (ou seja, sem uma dependência do Python).
import torch
import torch_tensorrt
model = MyModel (). eval (). cuda () # define your model here
inputs = [ torch . randn (( 1 , 3 , 224 , 224 )). cuda ()] # define a list of representative inputs here
trt_gm = torch_tensorrt . compile ( model , ir = "dynamo" , inputs = inputs )
torch_tensorrt . save ( trt_gm , "trt.ep" , inputs = inputs ) # PyTorch only supports Python runtime for an ExportedProgram. For C++ deployment, use a TorchScript file
torch_tensorrt . save ( trt_gm , "trt.ts" , output_format = "torchscript" , inputs = inputs ) import torch
import torch_tensorrt
inputs = [ torch . randn (( 1 , 3 , 224 , 224 )). cuda ()] # your inputs go here
# You can run this in a new python session!
model = torch . export . load ( "trt.ep" ). module ()
# model = torch_tensorrt.load("trt.ep").module() # this also works
model ( * inputs )# include " torch/script.h "
# include " torch_tensorrt/torch_tensorrt.h "
auto trt_mod = torch::jit::load( " trt.ts " );
auto input_tensor = [...]; // fill this with your inputs
auto results = trt_mod.forward({input_tensor});| Plataforma | Apoiar |
|---|---|
| Linux AMD64 / GPU | Suportado |
| Windows / GPU | Somente suportado (apenas dínamo) |
| Linux Aarch64 / GPU | Compilação nativa suportada no JetPack-4.4+ (use v1.0.0 por enquanto) |
| Linux Aarch64 / DLA | Compilação nativa suportada no JetPack-4.4+ (use v1.0.0 por enquanto) |
| Linux PPC64LE / GPU | Não suportado |
NOTA: Consulte o contêiner NVIDIA L4T Pytorch NGC para bibliotecas Pytorch no JetPack.
Estas são as seguintes dependências usadas para verificar as casas de teste. O-Tensorrt pode funcionar com outras versões, mas os testes não são garantidos para passar.
A depreciação é usada para informar os desenvolvedores que algumas APIs e ferramentas não são mais recomendadas para uso. A partir da versão 2.3, a Torch-Tensorrt possui a seguinte política de depreciação:
Os avisos de depreciação são comunicados nas notas de liberação. As funções de API depreciado terão uma declaração na fonte documentando quando foram preteridas. Métodos e classes depreciados emitirão avisos de depreciação em tempo de execução, se forem usados. A Torch-D-Tensorrt fornece um período de migração de 6 meses após a depreciação. APIs e ferramentas continuam trabalhando durante o período de migração. Após o término do período de migração, as APIs e as ferramentas são removidas de maneira consistente com a versão semântica.
Dê uma olhada no contribuindo.md
A licença da Torch-Tensorrt pode ser encontrada no arquivo de licença. É licenciado com uma licença de estilo BSD