AI

UE5のAI画像加工、RTX 5090でDirectMLの5.7ミリ秒を3.8ミリ秒に短縮

この記事のポイント

  1. 実現したこと

    Unreal Engine 5のNNEで、TensorRT for RTXを使ったGPU推論を選べるようになった。

  2. 実現の仕組み

    TensorRT for RTXは利用者のRTX GPUに合わせ、推論エンジンを実行時に一度生成する。

  3. 得られた結果

    NVIDIAの1080p・RTX 5090でのサンプル測定では、後処理のenqueueタスクがDirectMLの5.7ミリ秒に対し3.8ミリ秒だった。

  4. 従来との違い

    画像後処理のサンプルでは、固定されたランタイム一覧へNNERuntimeTRTを追加し、DirectMLと切り替えられる構成にした。

同じ仮想風景が異なる推論経路を経て画風変換される様子を示すイラスト
AI生成画像

Unreal Engine 5のAI画像加工で、TensorRT for RTXを推論ランタイムに選べるようになった。NVIDIAのRTX 5090を使った1080pのサンプル測定では、後処理のenqueueタスクがDirectMLの5.7ミリ秒に対し3.8ミリ秒だった。

NNEにRTX向け推論ランタイムを追加

Unreal Engine 5のNeural Network Engine(NNE)は、AIモデルの推論を複数のランタイムへ振り分けるための抽象化層だ。NVIDIAが追加したNNERuntimeTRTプラグインにより、その選択肢にTensorRT for RTXが加わった。

このランタイムが対象とするのは、Turing世代からBlackwell世代までのNVIDIA RTX GPUである。NNEを使う開発者は、対応するGPU上でTensorRT for RTXを推論経路として選択できる。

GPU別の最適化と描画処理への接続

TensorRT for RTXは、利用者のGPUに合わせて推論エンジンを実行時に生成する。モデルのコンパイルは利用者の環境で一度行われ、そのGPU向けに最適化されたエンジンを推論に使う。

NNERuntimeTRTは、CPUから同期的に呼び出すGPU推論に加え、Render Dependency Graph(RDG)を通じた実行にも対応する。RDG経由ではモデルの評価を描画リソースと結び付けられるため、画像の後処理をフレームの描画工程に組み込める。

画像後処理サンプルでランタイムを切り替える

NVIDIAの比較用サンプルは、固定カメラの場面にスタイル変換モデルを後処理として適用する。同じ場面でDirectMLとTensorRT for RTXを切り替え、処理時間を比べる構成だ。

このサンプルでは、Neural Post-Processingが参照するNeural Profileの固定されたランタイム一覧へNNERuntimeTRTを追加する。変更したUnreal Engine 5.7をソースからビルドすることで、後処理から新しいランタイムを選択する。

RTX 5090での後処理タスクは3.8ミリ秒

NVIDIAがGeForce RTX 5090を使い、1080pのサンプルをUnreal Insightsで測定した結果、後処理段階のenqueueタスクはDirectMLで5.7ミリ秒、TensorRT for RTXで3.8ミリ秒だった。同じサンプルにおけるこのタスクの所要時間は、TensorRT for RTXのほうが1.9ミリ秒短い。

画像寸法を広げてタイル分割を避ける

サンプルで参照するONNXのスタイル変換モデルは、入出力寸法が224×224画素に固定されている。大きなフレームへタイル処理で適用すると、1フレーム内で複数の推論タスクが生じ、CUDAとグラフィックス処理の間の切り替えも増える。

NVIDIAは、この切り替えを避ける方法として、モデルの入出力寸法を720×720画素へ変更する手順を示した。タイルに分けずに推論する構成を、画像後処理サンプルで利用できる。