元半導体設計屋 筑秋 景のシリコン解体新書

GeForce RTX 50はシェーダもAIで高速化

 NVIDIAのコードネーム「Blackwell」ことGeForce RTX 50シリーズは、小さなニューラルネットワークをプログラマブルシェーダに組み込んだ「RTXニューラルシェーダ」を導入した。ニューラルシェーディングの用途には、以下のものが含まれる。

  • ニューラルテクスチャ圧縮
  • ニューラルマテリアル
  • ニューラルボリューム
  • ニューラルラディアンスフィールド
  • ニューラルラディアンスキャッシュ

 RTXニューラルシェーダを導入するためにNVIDIAは、Microsoftと協力して新しいAPIを作成し、すべての開発者に公開した。中でも、RTXニューラルテクスチャ圧縮とRTXニューラルマテリアルは大きなブレークスルーだという。

 ニューラルテクスチャ圧縮は、AIを使用して数千のテクスチャを1分以内に圧縮する。圧縮されたテクスチャは、画質を落とさずに従来のブロック圧縮よりも最大7倍メモリを節約できるという。

 ニューラルマテリアルは磁器や絹のような、複数の層で構築された複雑なシェーダコードを圧縮するためにAIを使用している。従来、そういった複雑なシェーダコードはオフライン処理された。しかし、ニューラルマテリアルにより処理が最大5倍高速になったためリアルタイム処理が可能となり、ゲームにおいて映画品質の映像をレンダリングできるようになったという。

 また、ニューラルマテリアルでは、従来の標準的なシェーダでは計算量が多くなる処理をAIの使用で効率を上げ、計算量を抑えている。具体的に、標準的なシェーダでは47MBのメモリが必要なところを、ニューラルマテリアルでは16MBで処理しつつ、リアルに近い表現が可能になった。

 ニューラルラディアンスキャッシュ(NRC)は、ニューラルシェーダにパストレースのデータを入力し、AI推論処理により間接照明の表現を正確にリアルタイムに計算する機構。小さなニューラルネットワークのグリッドを使用して、各光線を一度バウンスした後にインターセプトし、その後ラディアンスキャッシュに保存する。そのネットワークは、そのシーンが4回バウンスした場合の見え方を推定する。

 これにより間接照明などの表現でパフォーマンスが向上するのだが、常にバックグラウンドで動作していて、ゲームをプレイしながら自動でAI学習を行なう仕組みとなっている。

 またNRCにより、ゲームでもサブサーフェススキャッタリング(表面散乱)のレイトレースが実現可能となる。これは映画技術を参考にして導入されたものだ。

 上記スライドにおいて、左側のオリジナルでは、テクスチャに多くのデコボコがあり、強い影によって“サメ肌”のように見える。一方、右側のNRCを使った「RTXスキン」の例では、すべての強い影がなくなり、光による自然な皮膚の表面散乱が表現されている。

 このほかにもAIを活用した新技術が実装されている。その1つの「RTXニューラルフェイス」は、生成AIを使用して顔の描画品質を向上させる。総当たりレンダリングを避け、シンプルなラスタライズされた顔と3Dポーズデータを入力するだけで、リアルタイムに自然な顔を推測、生成する。

 ゲームキャラクターの肌だけでなく、髪も正確にシミュレートすることが難しく、特にレンダリングが課題だ。最新のストランドベースの髪技術では、1本の髪あたり最大30個の三角形(トライアングル)を使用するため、グルーミング全体(キャラクターの髪の毛全体のレンダリング)で相当数の三角形が必要になる。そのため、レイトレーシングを用いたBVH(バウンディングボリューム階層)の構築には高い計算コストがかかることになる。

 そこでBlackwellでは、アクセラレーションプリミティブであるLinear-Swept Spheres(LSS)を導入した。LSSは、髪の束をレンダリングするために必要なジオメトリ量を削減し、三角形の代わりに球体を使用して髪の形状をより正確に表現する。これにより、レイトレースされた髪のレンダリングで使用するVRAMを3分の1に削減でき、フレームレートを向上可能になったという。

RTX Megaジオメトリ

 ゲームで使用される三角形(トライアングル)の数は、過去30年間で指数関数的に増加している。Unreal Engine 5と、仮想化ジオメトリシステムであるNaniteジオメトリ システムでは、数億個の三角形を使うオープンワールドを構築できるようになった。

 従来のジオメトリシステムでは、開発者は三角形の数やボリュームを考慮しながら正確にレンダリングするために、BVH(バウンディングボリューム階層)で光線を正確に追跡する必要があった。しかし、シーン内の詳細レベルや、レベルオブディテール(LOD)ごとにBVHを更新する必要がある。Naniteのクラスターベースのシステムを導入することで、数百万の三角形を従来よりも迅速に処理できるようになったが、BVHの構築にはコストがかかるようになってきた。

 そこでNVIDIAは、RTX Megaジオメトリを導入した。RTX Megaジオメトリでは、これらのクラスタを多くのフレームにわたってインテリジェントに圧縮およびキャッシュすることで、シーン内のBVHとLODの更新速度を加速でき、何百万もの三角形で満たされた複雑なジオメトリを忠実にパストレースすることができるようになる。

 上記スライドでは、左がRTX Megaジオメトリがなしで右がありだ。三角形の細やかさと数の違いが理解できるだろう。

 続いて、「DLSS4」について解説する。解像度を4Kにすると、描画の滑らかさと応答性で妥協せざる負えなくなる。

 これは、画質を1080pにすることで改善される。

 では画質を下げずに滑らかさと応答性を確保するにはどうすればいいだろうか?10基のGPUを使用してレンダリングするのは現実的ではない。

 解決法はレンダリングの方法をよりスマートにすることだ。

 レンダリング作業には多くの冗長性が存在する。フレーム間でほとんどグラフィックスが変化しないこともある。この冗長性をAIで発見、予測することで計算リソースを節約し、グラフィックスス処理における品質、パフォーマンス、電力効率のトレードオフを改善できる。NVIDIAのDLSS(Deep Learning Super Sampling)はその具体的手法の1つだ。

 Blackwellが新たにサポートするDLSS 4は、Transformerモデルを導入。モデルのサイズを大きくし、トレーニングデータセットを増やし、より多くのデータを学習中に見せることができるようになった。集中的なレイトレーシングコンテンツでは、新しいTransformerモデルによる光線再構成が、特に難しい照明条件のシーンで画像品質を大幅に向上させることができ、超解像も、従来モデルよりも時間的安定性が高く、ゴーストが少なく、精細さが増したという。

 DLSS 3では、GeForce RTX 40シリーズの光学フローアクセラレータからモーションベクター、深度、および光学フローフィールドなどのゲームデータを使用して1フレームを追加生成する。

 しかし、DLSS3方式で複数フレームを生成しようとすると、生成されるフレームごとに光学フローアクセラレータとAIモデルが必要になり高コストとなる。

 この課題に対して、BlackwellのDLSS 4はマルチフレーム生成に最適化させた。まず、SLI(Scalable Link Interface)の時代からのハードウェアフリップメータリング技術を強化し、AI-Management Processorを導入した。ハードウェアフリップメータリング技術は複数のGPUを連携させて高効率なレンダリングを実現するための技術だ。

 これにより、DLSS4のフレーム生成AIモデルは40%高速化され、効率化によりVRAM使用量は30%少なくなる。そして、これまでのハードウェアによる光学フローを効率的なAIモデルに置き換えることで、光学フローフィールドの生成を高速化した。

 一方で、超解像、光線再構成および生成されたフレームごとに1つのモデルを含む5つのAIモデルを生成しなければならなくなり、そして、これらすべてを数msで実行する必要が生じた。

 これを達成するために、AI処理性能が2.5倍の第5世代Tensorコアを搭載した。前述の通り、マルチフレーム生成の複雑さに対処するために、Blackwellはハードウェアフリップメータリングを使用するが、フレームペーシングロジックをディスプレイエンジンに移し、GPUが表示タイミングをより正確に管理できるようにした。

 DLSS 4ではマルチフレーム生成する際、実に16ピクセル中15ピクセルをAIで生成している。結果として、DLSS 4を使用することで、フレームレートは最大8倍に増加するという。

 マルチフレーム生成機能は、Tensorコアとフリップメーター技術に大きく依存しているため、GeForce RTX 50シリーズのみでサポートされる。