Torch-Tensorrt apporte la puissance de Tensorrt à Pytorch. Accélérer la latence d'inférence jusqu'à 5x par rapport à l'exécution impatient dans une seule ligne de code.
Des versions stables de Torch-Tensorrt sont publiées sur PYPI
pip install torch-tensorrtDes versions nocturnes de Torch-Tensorrt sont publiées sur l'index Pytorch Package Index
pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124Torch-Tensorrt est également distribué dans le conteneur Pytorch NVIDIA PYTORCH Prêt à cours qui a toutes les dépendances avec les versions appropriées et l'exemple de cahiers inclus.
Pour des méthodes d'installation plus avancées, veuillez consulter ici
Vous pouvez utiliser Torch-Tensorrt partout où vous utilisez 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!Si vous souhaitez optimiser votre modèle à l'avance et / ou déployer dans un environnement C ++, Torch-TenSorrt fournit un flux de travail de style exportation qui sérialise un module optimisé. Ce module peut être déployé en pytorch ou avec libtorch (c'est-à-dire sans dépendance 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});| Plate-forme | Soutien |
|---|---|
| Linux AMD64 / GPU | Soutenu |
| Windows / GPU | Prend en charge (Dynamo uniquement) |
| Linux Aarch64 / GPU | Compilation native prise en charge sur Jetpack-4.4 + (utilisez V1.0.0 pour le moment) |
| Linux Aarch64 / DLA | Compilation native prise en charge sur Jetpack-4.4 + (utilisez V1.0.0 pour le moment) |
| Linux PPC64LE / GPU | Non pris en charge |
Remarque: Reportez-vous au conteneur NVIDIA L4T PYTORCH NGC pour les bibliothèques Pytorch sur Jetpack.
Ce sont les dépendances suivantes utilisées pour vérifier les cas de test. Torch-Tensorrt peut fonctionner avec d'autres versions, mais les tests ne sont pas garantis pour passer.
La dépréciation est utilisée pour informer les développeurs que certaines API et outils ne sont plus recommandés pour une utilisation. À partir de la version 2.3, Torch-Tensorrt a la politique de dépréciation suivante:
Les avis de dépréciation sont communiqués dans les notes de communication. Les fonctions API obsolètes auront une déclaration dans la source de documentation lorsqu'elles ont été obsolètes. Les méthodes et les classes obsolètes émettront des avertissements de dépréciation au moment de l'exécution, s'ils sont utilisés. Torch-Tensorrt fournit une période de migration de 6 mois après la dépréciation. Les API et les outils continuent de fonctionner pendant la période de migration. Une fois la période de migration, les API et les outils sont supprimés d'une manière cohérente avec le versioning sémantique.
Jetez un œil à la contribution.md
La licence Torch-Tensorrt se trouve dans le fichier de licence. Il est sous licence de style BSD