2025/04/14 20:10 RDNA 4's Raytracing Improvements

ロボ子、RDNA 4のレイトレーシングがまた進化してるみたいじゃぞ!

博士、本当ですか! AAAタイトルでのレイトレーシング採用が増えているから、AMDも力を入れているんですね。

そうなんじゃ。「out-of-order」メモリアクセスとか、動的レジスタ割り当てとか、レイトレーシング以外にも恩恵があるように設計されてるのがミソじゃな。

なるほど、汎用的な改善も含まれているんですね。具体的には、どのような点が進化しているんですか?

Intersection Engineが倍増して、各Ray Acceleratorに2つ搭載されるようになったらしいぞ。これでIntersectionテストのスループットが倍になるんじゃ。

それはすごいですね! 以前の世代だと、サイクルごとに4つのボックステストか1つの三角形テストだったのが、RDNA 4では8つのボックステストか2つの三角形テストが可能になるんですね。

その通り! さらに、BVHも拡張されて、8-wideのボックスノードを採用したことで、ツリーの最下部までより少ないステップで到達できるようになったんじゃ。

BVHの最適化は重要ですよね。他に何か新しい技術はありますか?

Oriented Bounding Boxes (OBB) が導入されたのが大きいぞ。バウンディングボックスを回転させて、内部のジオメトリをより適切に近似できるようになったんじゃ。

OBBですか! 確かに、より複雑な形状を扱う場合に有効そうですね。でも、回転の計算は重くないんですか?

そこがミソでな、各ボックスノードは、すべての子に対して1つのOBB回転のみを指定するんじゃ。OBBマトリックスはノードに格納せず、定義済みのマトリックスのテーブルでインデックス参照するらしいぞ。

なるほど! 事前に計算されたマトリックスを参照することで、計算コストを抑えているんですね。

そういうことじゃ。さらに、Primitive Nodeの圧縮も行われているぞ。複数の三角形ペアを128バイトの圧縮されたノードにパックすることで、BVHのフットプリントを最小化しているんじゃ。

圧縮ですか! どのようにしてデータ量を減らしているんですか?

三角形ペア間でユニークな頂点のみを格納して、頂点座標のビット単位のFP32表現で最小の末尾のゼロを見つけて、それらをストレージから削除するらしいぞ。

細かい工夫が凝らされているんですね!

Radeon Raytracing Analyzerによると、Elden Ringとか3DMarkのPort RoyalベンチマークでBVHサイズの削減が確認されてるみたいじゃ。Cyberpunk 2077では、あんまり効果が出てないみたいだけど。

ゲームによって効果が違うんですね。RDNA 4は、各トラバーサルステップでより多くのIntersectionテストを必要とするけど、トラバーサルステップ数を削減することで、全体的なパフォーマンスを向上させているんですね。

そうそう。3DMarkのDXRフィーチャテストでは、Radeon RX 9070は1秒あたり111.76Gのボックステストと19.61Gの三角形テストを維持したらしいぞ。RX 6900XTと比べると、かなり性能が向上してるのがわかるな。

競合他社との比較ではどうですか?

Intelは、専用のBVHキャッシュと内部レジスタに保持された短いスタックを備えたRaytracing Accelerator (RTA) を使ってるみたいじゃな。AMDのアプローチは、レイトレーシングパイプラインステップ間のスレッド起動を回避することで、レイテンシを削減し、スレッドレベルの並列処理を活用できるのが強みじゃ。

なるほど、各社のアプローチに違いがあるんですね。RDNA 4のレイトレーシング技術、ますます進化していて目が離せませんね!

じゃろ? ところでロボ子、レイトレーシングって、英語で書くとどうなるか知ってるか?

えっと…ray tracing ですよね?

正解! …って、レイ(霊)をトレース(追跡)するって、なんだかお化け探知機みたいじゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。