このページの本文へ

最新パーツ性能チェック 第381回

購入前に押さえておきたいRTX 40シリーズの新機能も解説

GeForce RTX 4090基本ベンチ&解説編!Fire Strike UltraはRTX 3090から93%アップ!?

2022年10月11日 22時00分更新

文● 加藤勝明(KTU) 編集● ジサトラユージ/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

AIがフレームを自動補間する新世代のDLSS

③“CPUボトルネック”を緩和しフレームを生成する「DLSS Frame Generation」

 RTX 40シリーズにおける最大のみどころはDLSS 3で追加されるDLSS Frame Generation、日本語で言えば「DLSSフレーム生成」への対応だ。これに伴い従来のDLSSはDLSS Super Resolutionと呼ばれることになった。DLSS Super Resolutionは引き続きRTX 20〜30シリーズでも利用可能だが、DLSS Frame GenerationはRTX 40シリーズ専用となる。「DLSS 3」とは、DLSS Frame Generationを含むDLSS実装を示す呼び名だ。

DLSS 3はGeForceの世代によって対応する機能が分かれる。最新のDLSS Frame GenerationはRTX 40シリーズのみだが、従来のDLSS Super ResolutionはRTX 20シリーズ以降。システムレイテンシーを短縮するNVIDIA Reflexがここに入っているのは、DLSSの処理にReflexを組み込めるようになったためだ

Cyberpunk 2077のβビルドにおけるDLSS Frame Generationの設定。DLSS Super Resolutionを有効にするとDLSS Frame Generationをオン/オフするスイッチが出現する。RTX 30シリーズでもこのスイッチは出現するが、オンにすることはできない

 DLSS Frame Generationの前にDLSS Super Resolutionについて解説しておくと、低解像度のレンダリングから高解像度かつ高画質の出力画像を得る超解像処理を行う機能だ。Tensorコアを利用したAI処理により実現する。DLSS Super ResolutionでGPUの負荷が劇的に下がるため、ゲームのフレームレート向上に大きな効果が得られるが、CPUがGPUに描画を指示しなければ効果が得られない。もしCPUの処理がモタついて、GPUに描画指示を出すのが遅れれば、フレームレートは上がらない。いわゆる「CPUバウンド」の状態になる。

 この状況を打破するのがDLSS Frame Generationとなる。DLSS Frame Generationでは前フレームと今フレームの情報から、今フレームと次フレームの中間フレームをGPUだけで推測して出力する。仮にCPUがフレーム0、1、2、3、4……と描画指示を出した場合、フレーム0と1から0.5を、1と2から1.5を生成する。

 DLSS Frame Generationは特にCPUバウンド(=CPUが律速)の状態で効果を発揮するが、これは即ちCPUのパフォーマンスが低いほどDLSS Frame Generationの効果も期待できることを意味する。レイトレーシングのように重い処理で効果を発揮するが、DLSS Frame Generationの動作にレイトレーシングは必須ではない。

従来のレンダリング(上段)ではフレーム1→2→3としかレンダリングできないものが、DLSS Frame Generationを利用することで、中間フレームをAIが生成できるようになった

 DLSS Frame Generationを使うことで、同じフレームレートでもGPUのシェーダー負荷を減らせる点も大きなメリットだ。例えばDLSS Super ResolutionのPerformanceモードでは、出力解像度の縦横半分の解像度(面積にして1/4)でレンダリングされるが、これにDLSS Frame Generationを適用すると、最初の1フレームとFrame Generationで挿入される次のフレームのすべてがAIによって描画されることになる。理論上、1のシェーダー負荷で8の仕事ができる計算になる(実際はそう上手くは行かないだろうが)。

DLSS Frame Generationで4Kのフレームを描画することを考えてみよう。DLSS Super Resolution(Performance)にした場合、フルHDでレンダリングした結果(図中のTraditional Renderの領域)からDLSS Super Resolutionで高解像度の画像を生成し、次のフレームはDLSS Frame Generationでまるごと1枚生成される。画面に表示されるピクセルのうち、実際にシェーダーが頑張ったのはTraditional Renderの部分だけだ

 このDLSS Frame Generationの推論処理において必要なのが、あるフレームにおいて動いていないピクセルの判定だ。これを処理するのがRTX 40シリーズに搭載されたオプティカルフローアクセラレーターだ。

 オプティカルフローについてざっと解説しておくと、時間的に連続した2枚の画像を比較し、各ピクセルの光学的な動きから動きのベクトルを算出するというもので、「Adobe Premiere Pro」をはじめ、動画編集系ソフトではお馴染みのフレーム補間技法となる。DLSS Super Resolutionで言うところのモーションベクターはゲーム内世界でのオブジェクトの動き、オプティカルフローは画面に投影された映像の動きと言い換えられる。

オプティカルフローアクセラレーターは、前フレームと今フレームを領域ごとに比較し、そこからオプティカルフロー、即ち光学的な動きを抽出する。バイクに乗ったキャラが地面に落とす影の領域は、画面上では動かないが、街頭の影付近は素早く動いていると判断する

モーションベクターとオプティカルフローの2つを合わせることにより、動いているゲーム画面でも次のフレームを精度よく生成することが可能になる

Cyberpunk 2077でDLSS SRとDLSS FGを有効化し、4Kでプレイした時の模様をOBS Studioで録画した。図は刀を振るアクション中のフレームを抜きだしたものだが、このフレームはCPUが指令を出したらしく破綻はない

次のフレームはDLSS Frame Generationが生成したもの。刀が短くなっただけでなく、ブラーがかかった領域に破綻が観測できる。AIが推測しているが、最近話題の「Stable Diffusion」などのように絵の内容まで推測しているわけではないので、こういった表現になる

次のフレームはCPUが指示して描画しているため、ブラーはかかっているが大きな破綻はみられない

さらにその次はDLSS Frame Generationで生成されているため、腕の部分や刀身にアーティファクトが盛大に発生している。刀身の周囲にあるのは刀の反射を表現するエフェクトだ

その次は破綻なく描画される。この一連の動作中のフレームレートは117fpsと非常に高速なので、コマ送りにしない限りはこの破綻は見えない

 このオプティカルフローアクセラレーターの存在が、DLSS Frame GenerationがRTX 40シリーズ以降でしか使えない理由になる。オプティカルフローで画面を光学的に分析して初めて、破綻の少ないフレーム生成が可能になるのだ。もちろん推測による生成であるため、激しく動く物体がある場合は形状が乱れるなどの制約はあるが、ゲームにおけるCPUボトルネックを打破する手段としては非常に有用といえる。

 ただ、常に場面の正確な動きを認識する必要があるeスポーツ性の高いゲーム(VALORANTやApex Legends等)では、推論によって描画するDLSS Frame Generationとは相性が良くないのではと感じる人もいるはずだ。

 しかし、そういったゲームではそもそも描画が軽いものが多く、DLSS Frame Generationが必須になるとは考えにくい。もしDLSS Frame Generationが実装されていても、使わなければ済む話だ。

④NVEncはAV1に対応。さらに2つ並列で動作可能

 RTX 40シリーズではGPUに搭載されたハードウェアエンコーダー「NVEnc」がAV1に対応した。先鞭を付けたのは先日登場した「インテル Arc A380 グラフィックス」だが、今回はレビュー用に「DaVinci Resolve Studio 18」やDiscordのβビルドも提供されたため、実践的なパフォーマンスの検証もできた。DaVinci Resolve Studio 18に関しては別稿で検証結果をお目にかけたい。

NVIDIAもインテルと同様に、メーカーを巻き込んだAV1エコシステムの構築に取り組んでいる。OBSやDiscordなど、お馴染みのアプリも対応予定だ

DaVinci Resolve Studio 18のβビルドでは、AV1コーデックを指定するとエンコーダーにNVEncのAV1が指定できた

 さらに、NVEncは2基搭載され、2基のNVEncを並列で動かせるようになった。Pascal〜Volta世代(GeForce GTX 1070〜Titan V)ではすでに複数のNVEncを備えたモデルが存在するが、並列で動かせるのはAda Lovelace以降とのことだ。「OBS Studio」の最新ビルドではデュアルNVEncに対応しており、エンコーダーにNVEncを指定するだけで自動的に並列処理となる。ただ、今回試した限りではNVEncの片方だけを使用するような指定はできなかったので、2基同時利用が前提と考えられる。

RTX 4090に搭載されたデュアルエンコーダーのおかげで、DaVinci Resolve Studioにおける動画のエンコード処理は、RTX 3090 Tiの半分以下で済む。現時点のOBS Studioでもデュアルエンコーダーの活用が可能だ

OBS Studioで「Cyberpunk 2077」の4Kプレイを録画しつつ、タスクマネージャーでGPUの状態を見てみた。2つのVideo Encodeそれぞれに負荷がかかっていることがわかる

前掲のシーンを録画した際のOBS Studio(28.0.3)の設定。解像度4Kで120fps録画を指定している

前掲のシーンの設定その2。まだOBSではNVEncのAV1エンコードに対応していないが、NVEncのH.264を使用した。画質のプリセットはNVIDIAによればMax Performanceが推奨だが、Qualityまで上げることができた(Max Qualityではエンコードミスが発生)。またNVEncは1基使うか2基使うかの指定はなく、常に2基同時稼働となる

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

ピックアップ

ASCII.jpメール アキバマガジン

ASCII.jp RSS2.0 配信中