TensorRT は、 Nvidiaが開発したソフトウェア開発キット(SDK) および推論最適化ランタイムであり、学習済みの深層学習および機械学習モデルをグラフィックス処理ユニット(GPU)に展開するために使用されます。[ 1 ] [ 2 ] PyTorch、TensorFlow、ONNXなどのフレームワークからモデルをインポートし、低遅延かつ高スループットの推論のために最適化されたランタイム エンジンにコンパイルできます。[ 1 ] [ 2 ]
現在のNvidiaのドキュメントでは、TensorRTという名称は、コアTensorRT SDK、TensorRT-LLM、TensorRT-RTXを含むより広範な製品ファミリーにも使用されています。[ 3 ]コアSDKは主にNvidia独自の製品ですが、NvidiaはApacheライセンスのオープンソースTensorRTリポジトリと関連するコンパニオンプロジェクトも維持しています。[ 4 ] [ 5 ]
TensorRT は 2017 年までに Nvidia のディープラーニング ソフトウェア スタックの一部として利用可能になり、当時は Nvidia GPU 上でトレーニング済みのニューラル ネットワークを展開するための高性能推論エンジンとして説明されていました。[ 6 ] 2018 年、Google は Nvidia TensorRT とTensorFlow 1.7 の統合を発表し、TensorRT を推論用にディープラーニング モデルを最適化し、本番環境で GPU に展開するためのランタイムを作成するライブラリとして説明しました。[ 7 ]
TensorRT の中核は、ネットワーク定義と学習済みパラメータからなる学習済みネットワークを受け取り、Nvidia GPU 上での推論用に高度に最適化されたランタイム エンジンを生成するC++ライブラリです。 [ 2 ] TensorRT は C++ とPython の両方のAPI を提供しており、モデルはネットワーク定義 API を介して直接表現することも、ONNXパーサーを介してインポートすることもできます。[ 2 ]
Nvidiaのドキュメントによると、TensorRTは、レイヤー融合やサポートされている演算の効率的な実装の選択など、グラフレベルとカーネルレベルの最適化を実行します。 [ 2 ]現在のドキュメントでは、動的な形状、 FP32、FP16、BF16、FP8、INT8を含む混合精度実行モード、およびトランスフォーマーと大規模言語モデルのワークロード向けの特殊な最適化のサポートについても説明しています。[ 1 ]
TensorRT エンジンは、TensorRT API またはtrtexecコマンドラインユーティリティを使用して生成できます。 [ 8 ] Nvidia のクイックスタートドキュメントでは、ONNX変換、ランタイム API、および C++ と Python アプリケーション用の直接エンジン逆シリアル化に基づくデプロイメントワークフローについて説明しています。[ 8 ]
TensorRT のライセンス モデルは、独自のコア SDK と一連のオープンソースのリポジトリおよびツールに分かれています。[ 4 ] [ 5 ] Nvidia が配布するパッケージ化された TensorRT ソフトウェアは、Nvidia ソフトウェア ライセンス契約によって管理されています。[ 4 ]同時に、Nvidia はApache License 2.0の下でGitHub上に公開の TensorRT リポジトリを維持しています。[ 5 ]
TensorRT の公式ドキュメントでは、クイックスタート コードとサンプルについては TensorRT オープンソース ソフトウェア リポジトリを参照するようにユーザーを誘導しています。[ 8 ]アーキテクチャ ドキュメントでは、デバッグや定数畳み込みのための Polygraphy や、TensorRT でデプロイする前に ONNX グラフを変更するための ONNX-GraphSurgeon などの関連ツールについて説明しています。[ 9 ] TensorRT は、カスタム レイヤーやサポートされていない操作のためのプラグイン メカニズムもサポートしています。[ 8 ]
Nvidiaの現在のドキュメントでは、いくつかの推論製品がTensorRTという名前でまとめられています。[ 3 ]そのドキュメントでは、コアSDKはTensorRT(エンタープライズ)として区別されており、関連する製品には、大規模言語モデル推論用のTensorRT-LLMと、コンシューマー向けRTX GPU用のTensorRT-RTXがあります。[ 3 ]
TensorRT-LLMは、Nvidia GPU 上で大規模言語モデルを最適化および提供するための関連オープンソースツールキットです。[ 3 ] [ 10 ] Nvidia は、LLM を定義し、LLM ワークロードに最適化された TensorRT エンジンを構築するための Python API を提供すると説明しています。[ 3 ] [ 10 ]
Nvidiaの製品ファミリーのドキュメントによると、TensorRT-LLMはマルチGPUおよびマルチノード実行、インフライトバッチ処理、ページングKVキャッシュ、および高スループットモデルサービングのためのFP8、INT8 、INT4などの量子化メソッドをサポートしています。 [ 3 ] TensorRT-LLMのコードベースは、Apache License 2.0の下でGitHubに公開されています。[ 11 ]
NvidiaはTensorRT-LLMをTensorRT製品ファミリーの別個のメンバーとして文書化しているため、通常は基本のTensorRT SDKの単一の機能としてではなく、関連するが別個のソフトウェアプロジェクトとして扱われます。[ 3 ]