TensorRTは、Nvidiaが開発したソフトウェア開発キット(SDK)および推論最適化ランタイムであり、訓練済みのディープラーニングおよび機械学習モデルをグラフィックス処理ユニット(GPU)上にデプロイするために使用される。PyTorch、TensorFlow、ONNXなどのフレームワークからモデルをインポートし、低遅延かつ高スループットの推論を実現する最適化済みランタイムエンジンへとコンパイルできる。現在のNvidiaドキュメントでは、TensorRTという名称は、コアとなるTensorRT SDK、TensorRT-LLM、TensorRT-RTXを含むより広範な製品ファミリーも指す。
コアSDKは主にNvidiaのプロプライエタリ製品であるが、NvidiaはApacheライセンスのオープンソースTensorRTリポジトリおよび関連するコンパニオンプロジェクトも維持している。TensorRTは、コンピュータビジョンから大規模言語モデルまで、AI推論タスクの本番環境で広く使用されており、Nvidiaのディープラーニングソフトウェアスタックにおける重要な構成要素である。
歴史
TensorRTは、2017年までにNvidiaのディープラーニングソフトウェアスタックの一部として利用可能となり、その当時は、訓練済みのニューラルネットワークをNvidia GPU上にデプロイするための高性能推論エンジンとして説明されていた。2018年、GoogleはNvidia TensorRTとTensorFlow 1.7との統合を発表し、TensorRTを、推論用にディープラーニングモデルを最適化し、本番環境のGPU上でのデプロイ用ランタイムを作成するライブラリであると説明した。この統合は、TensorRTをNvidiaハードウェア上での機械学習推論の標準ツールにするための初期の一歩となった。
概要
TensorRTの中核はC++ライブラリであり、ネットワーク定義と訓練済みパラメータからなる訓練済みネットワークを受け取り、Nvidia GPU上での推論用に高度に最適化されたランタイムエンジンを生成する。TensorRTはC++およびPythonの両方のAPIを提供し、モデルはネットワーク定義APIを通じて直接表現するか、ONNXパーサーを通じてインポートすることができる。この柔軟性により、開発者はさまざまなディープラーニングフレームワークのモデルを扱うことができる。
Nvidiaのドキュメントによると、TensorRTはレイヤー融合やサポート対象操作の効率的な実装の選択など、グラフレベルおよびカーネルレベルの最適化を実行する。これらの最適化により遅延が削減されスループットが向上し、TensorRTはリアルタイムアプリケーションに適したものとなっている。現在のドキュメントでは、動的シェイプのサポート、FP32、FP16、BF16、FP8、INT8を含む混合精度実行モード、およびトランスフォーマーおよび大規模言語モデルワークロード向けの特殊な最適化についても説明されている。これには、パフォーマンスをさらに向上させるためのモデルプルーニングや量子化などの技術が含まれる。
TensorRTエンジンは、TensorRT APIまたはtrtexecコマンドラインユーティリティを通じて生成できる。Nvidiaのクイックスタートドキュメントでは、ONNX変換、ランタイムAPI、C++およびPythonアプリケーション向けの直接エンジン逆シリアル化に基づくデプロイワークフローについて説明されている。これらのワークフローにより、Amazon Web ServicesやGoogle Cloudなどのクラウドサービスと組み合わせて、本番システムへのシームレスな統合が可能になる。
ライセンスとオープンソースコンポーネント
TensorRTをめぐるライセンスモデルは、プロプライエタリなコアSDKと、一連のオープンソースリポジトリおよびツールに分かれている。Nvidiaが配布するパッケージ版TensorRTソフトウェアは、Nvidiaソフトウェアライセンス契約に準拠する。同時に、NvidiaはGitHub上でApache License 2.0の下で公開TensorRTリポジトリを維持しており、コミュニティの貢献と特定コンポーネントの透明性を可能にしている。
公式のTensorRTドキュメントでは、クイックスタートコードとサンプルについて、TensorRTオープンソースソフトウェアリポジトリへの参照もユーザーに案内している。アーキテクチャドキュメントでは、デバッグと定数折りたたみのためのPolygraphy、TensorRTでのデプロイ前にONNXグラフを変更するためのONNX-GraphSurgeonなどの関連ツールについて説明している。TensorRTはまた、カスタムレイヤーやサポートされていない操作のためのプラグインメカニズムもサポートしており、開発者が特殊なニーズに応じて機能を拡張できるようにしている。
製品ファミリー
Nvidiaの現在のドキュメントでは、TensorRTという名称の下にいくつかの推論製品がグループ化されている。そのドキュメントでは、コアSDKはTensorRT(Enterprise)として区別され、関連する製品には大規模言語モデル推論用のTensorRT-LLM、コンシューマ向けRTX GPU用のTensorRT-RTXが含まれる。このファミリーアプローチは、AIワークロードとハードウェアターゲットの多様化の高まりを反映している。
TensorRT-LLM
TensorRT-LLMは、Nvidia GPU上で大規模言語モデルを最適化およびサービス提供するための関連するオープンソースツールキットである。Nvidiaはこれを、LLMを定義し、LLMワークロード向けに最適化されたTensorRTエンジンを構築するためのPython APIを提供するものと説明している。このツールキットは、高いメモリ帯域幅と効率的なアテンションメカニズムを必要とする生成AIモデルの固有の課題に対処するように設計されている。
Nvidiaの製品ファミリードキュメントによると、TensorRT-LLMはマルチGPUおよびマルチノード実行、インフライトバッチ処理、ページングされたKVキャッシュ、FP8、INT8、INT4などの量子化方式をサポートしており、より高スループットのモデルサービス提供を実現する。これらの機能により、OpenAIやAnthropicなどのモデルの本番環境での効率的なデプロイが可能になる。TensorRT-LLMのコードベースはApache License 2.0の下でGitHubに公開されており、開発者のコミュニティを育成している。
NvidiaがTensorRT-LLMをTensorRT製品ファミリーの別個のメンバーとして文書化しているため、これは通常、ベースのTensorRT SDKの単一機能ではなく、関連するが別個のソフトウェアプロジェクトとして扱われる。この区別により、従来のニューラルネットワークとは異なるパフォーマンス特性を持つ大規模言語モデルに焦点を当てた開発と最適化が可能になる。
関連項目
- llama.cpp
- SGLang
- vLLM
- オープンソース人工知能ソフトウェアの一覧
- ディープラーニングソフトウェアの比較
- 機械学習ソフトウェアの比較