Torch-Tensorrtは、Tensortの力をPytorchにもたらします。 1行のコードでの熱心な実行と比較して、推論の遅延を最大5倍加速します。
Torch-Tensorrtの安定したバージョンはPypiで公開されています
pip install torch-tensorrtTorch-Tensorrtの夜間バージョンは、Pytorchパッケージインデックスに公開されています
pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124Torch-Tensorrtは、適切なバージョンと例を含むすべての依存関係を備えた、すぐに運営されているNvidia NGC Pytorchコンテナにも配布されています。
より高度なインストール方法については、こちらをご覧ください
torch.compileを使用する場所では、Torch-Tensorrtを使用できます。
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!Torch-Tensorrtは、Modelを早期に最適化したり、C ++環境で展開したりする場合は、最適化されたモジュールをシリアル化するエクスポートスタイルのワークフローを提供します。このモジュールは、PytorchまたはLibtorch(つまり、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});| プラットフォーム | サポート |
|---|---|
| Linux AMD64 / GPU | サポート |
| Windows / GPU | サポート(ダイナモのみ) |
| Linux AARCH64 / GPU | Jetpack-4.4+でサポートされているネイティブコンパイル(当面はv1.0.0を使用) |
| Linux AARCH64 / DLA | Jetpack-4.4+でサポートされているネイティブコンパイル(当面はv1.0.0を使用) |
| Linux PPC64LE / GPU | サポートされていません |
注:JetPackのPytorchライブラリのNVIDIA L4T Pytorch NGCコンテナを参照してください。
これらは、テストケースの検証に使用される次の依存関係です。 Torch-Tensorrtは他のバージョンで動作することができますが、テストは合格することは保証されていません。
非推奨は、いくつかのAPIとツールが使用することを推奨しなくなったことを開発者に通知するために使用されます。バージョン2.3から始めて、Torch-Tensorrtには次の非推奨ポリシーがあります。
非推奨通知は、リリースノートで伝えられています。非推奨API関数は、廃止されたときにドキュメントを記録するソースに声明を発表します。非推奨の方法とクラスは、使用されている場合、実行時に非推奨警告を発します。 Torch-Tensorrtは、非難の後6ヶ月の移住期間を提供します。 APIとツールは、移行期間中も機能し続けます。移行期間が終了した後、APIとツールはセマンティックバージョンと一致する方法で削除されます。
Convinting.mdをご覧ください
Torch-Tensorrtライセンスは、ライセンスファイルに記載されています。 BSDスタイルのライセンスがライセンスされています