TensorRTとは
NVIDIA GPU上での推論を高速化する、NVIDIA製の推論最適化SDK
ひとことで言うと
NVIDIA GPU上でAIの実行を速くするための、NVIDIA製の最適化ツール。
概要
TensorRT(テンソルアールティー)とは、NVIDIAが提供する、自社GPU上でのディープラーニング推論を高速化するためのSDK(ソフトウェア開発キット)。 PyTorchやONNX形式で学習・エクスポートされたモデルを取り込み、レイヤーの融合(Layer Fusion)、精度の変換(FP16・INT8等への量子化)、GPUの世代に応じたカーネルの自動選択といった最適化を適用することで、推論のレイテンシとスループットを改善する。 モデルをそのまま使うより数倍の高速化が得られることも多く、クラウド上でのLLMサービング、エッジデバイスでのリアルタイム推論等、レイテンシがサービス品質に直結する用途で活用される。
背景
学習時に使われるフレームワークの汎用的な実行経路は、必ずしも推論に最適化されているとは限らない。 TensorRTは、学習済みモデルをNVIDIA GPU上での推論に特化した形へ変換・最適化することで、本番環境での推論性能を高めるために開発された。
歴史
2017年: NVIDIAがTensorRTを発表し、自社GPU向けの推論最適化SDKとして展開を開始した。 以降、対応する数値精度やモデル形式を拡充しながら、LLMサービング向けのTensorRT-LLM等派生プロジェクトにも発展している。
アーキテクチャ
入力されたモデルの計算グラフを解析し、複数の演算をまとめて1つのGPUカーネルにする層融合、より低い数値精度(FP16・INT8等)への変換、使用するGPUの世代に最適なカーネル実装の選択といった最適化を適用したうえで、最適化済みの実行エンジンを生成する。
コード例
ONNXモデルからのエンジン構築(概念例)
import tensorrt as trt
logger = trt.Logger(trt.Logger.WARNING)
builder = trt.Builder(logger)
network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
parser = trt.OnnxParser(network, logger)
with open("model.onnx", "rb") as f:
parser.parse(f.read())
config = builder.create_builder_config()
engine = builder.build_serialized_network(network, config)利点
欠点
比較
関連用語
よくある質問
TensorRTはどんな場面で使う?
NVIDIA GPU上で本番環境の推論を高速化したい場合に使われ、特にレイテンシやスループットがシビアに求められるサービングで効果を発揮する。
TensorRTとTensorRT-LLMの違いは?
TensorRTは画像認識等も含む汎用的な推論最適化SDKであるのに対し、TensorRT-LLMはLLM推論に特化して、KVキャッシュの管理やバッチ処理等の最適化を組み込んだ派生プロジェクト。
参考文献
- Official WebsiteNVIDIA TensorRT
- GitHubNVIDIA/TensorRT