Torch-Tensorrt bringt die Kraft von Tensorrt in Pytorch. Beschleunigen Sie die Inferenzlatenz um bis zu 5x im Vergleich zur eifrigen Ausführung in nur einer Codezeile.
Stabile Versionen von Torch-Tensorrt werden auf PYPI veröffentlicht
pip install torch-tensorrtNachtversionen von Torch-Tensorrt werden im Pytorch-Paketindex veröffentlicht
pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124Torch-Tensorrt ist auch in dem referenzierenden Nvidia NGC Pytorch-Container verteilt, der alle Abhängigkeiten mit den richtigen Versionen und Beispiel-Notizbüchern enthält.
Weitere weitere Installationsmethoden finden Sie hier
Sie können Torch-Tensorrt überall verwenden, wo Sie torch.compile verwenden:
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!Wenn Sie Ihr Modell vor der Zeit optimieren und/oder in einer C ++-Umgebung bereitstellen möchten, bietet Torch-Tensorrt einen Workflow im Exportstil, der ein optimiertes Modul serialisiert. Dieses Modul kann in Pytorch oder mit libtorch (dh ohne Python -Abhängigkeit) eingesetzt werden.
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});| Plattform | Unterstützung |
|---|---|
| Linux AMD64 / GPU | Unterstützt |
| Windows / GPU | Unterstützt (nur Dynamo) |
| Linux AArch64 / GPU | Native Compilation unterstützt auf Jetpack-4,4+ (verwenden Sie vorerst v1.0.0) |
| Linux AArch64 / DLA | Native Compilation unterstützt auf Jetpack-4,4+ (verwenden Sie vorerst v1.0.0) |
| Linux PPC64LE / GPU | Nicht unterstützt |
Hinweis: Siehe NVIDIA L4T Pytorch NGC Container für Pytorch -Bibliotheken auf Jetpack.
Dies sind die folgenden Abhängigkeiten, die zur Überprüfung der Testcasen verwendet werden. Torch-Tensorrt kann mit anderen Versionen arbeiten, aber die Tests sind nicht garantiert.
Die Abschaltung wird verwendet, um Entwicklern darüber zu informieren, dass einige APIs und Tools nicht mehr für die Verwendung empfohlen werden. Ab Version 2.3 hat Torch-Tensorrt die folgende Abschreibungsrichtlinie:
Abschaltungsbekanntmachungen werden in den Versionshinweise mitgeteilt. Veraltete API -Funktionen haben eine Erklärung in der Quelle, bei der sie veraltet waren. Veraltete Methoden und Klassen werden zur Laufzeit Abschreibungswarnungen ausstellen, wenn sie verwendet werden. Torch-Tensorrt bietet nach der Abwertung eine Migrationsphase von 6 Monaten. APIs und Tools funktionieren während der Migrationszeit weiter. Nach dem Ende des Migrationszeitraums werden APIs und Tools in einer Weise entfernt, die mit der semantischen Versionung übereinstimmt.
Schauen Sie sich den beitragen.md an
Die Fackel-Tensorrt-Lizenz finden Sie in der Lizenzdatei. Es ist mit einer BSD -Lizenz lizenziert