AMDの特許は、グラフィックスカードへのレイトレーシング実装の解釈に関して、同社の方法を示したかもしれません。
「テクスチャプロセッサベースのレイトレーシングアクセラレーションの方法およびシステム」と題された特許は、レイトレーシングに対するハイブリッドのソフトウェア - ハードウェアアプローチを説明している。
AMDは、このアプローチはハードウェアベースのソリューションのみを改善すると言っています。
「ハイブリッドアプローチ(BVHツリーの単一ノードに対して固定機能アクセラレーションを実行し、シェーダユニットを使用して処理をスケジュールする)は、ハードウェアベースおよび/またはソフトウェアベースのソリューションのみで問題を解決します。シェーダユニットは依然として計算全体を制御することができ、必要に応じて固定機能ハードウェアを迂回することができ、それでもなお固定機能ハードウェアの性能上の利点を得ることができるので、柔軟性が維持される。さらに、テクスチャプロセッサインフラストラクチャを利用することによって、既存のベクトル汎用レジスタ(VGPR)およびテクスチャキャッシュを代わりに使用することができるので、ハードウェアレイトレーシングソリューションに通常必要とされる、レイ記憶およびBVHキャッシングのための大きなバッファが排除される。ハードウェアソリューションの面積と複雑さを大幅に節約できます。」
※ BVHはBounding Volume Hierarchyの略で、レイ・トレーシングの交差判定や物理シミュレーションの衝突判定の高速化で利用される階層的なデータ構造です。
これは、固定機能のレイトレーシングハードウェアが、レイトレーシング固有のデータをローカルに保存する必要がなく、テクスチャシステムの既存のメモリバッファを使用できるようになるためです。
これにより、面積とチップの複雑さが増します。
さらに、固定機能ハードウェアにリソースを割り当てて作業をスケジュールするソフトウェアがないため、純粋なハードウェアソリューションではRT固有の作業負荷に対してのみ追加のハードウェアスケジューラが必要になります。
AMDがその実装を迂回すると主張 - シェーダープロセッサは固定機能ハードウェアが処理するためにレイトレーシングデータをテクスチャ処理パスに送り、「古典的な」ハードウェアソリューションで使用されるダイスペースをさらに節約します。
SonyとMicrosoftの両方の次世代コンソールがレイトレーシングをサポートし、本質的にAMD Naviベースになることはよく知られています。
これらのカスタムチップには、AMDのRDNAアーキテクチャ(PCレベルのNaviにのみ散りばめられている)からの特別な埃がいくらか残っている可能性があり、これらの特別なコンポーネントは両方のコンソールのレイトレーシング機能に確実に関係します。
特許は1年半前に提出されていますが、今こそそのようなハイブリッドデザインから実を結びます。
本稿から取られたAMDのアプローチについてのいくつかのハイライトは以下で見られることができる、しかしあなたが全体のパテントの読みに興味があるならば、ソースリンクに従ってください。
このシステムは、相互接続されたシェーダ、テクスチャプロセッサ(TP)、およびキャッシュを含む。
TPは、テクスチャアドレスユニット(TA)、テクスチャキャッシュプロセッサ(TCP)、フィルタパイプラインユニット、および光線交差エンジンを含む。 シェーダは、レイデータと、有界ボリューム階層(BVH)ノードへのポインタとを含むテクスチャ命令をTAに送信する。
TCPはTAから提供されたアドレスを使用してキャッシュからBVHノードデータを取得します。
レイ交差エンジンは、レイデータとBVHノードデータを使用してレイ-BVHノードタイプ交差テストを実行する。
交差テストの結果とBVHトラバーサルの指示は、テクスチャデータリターンパスを介してシェーダに返されます。
シェーダは交差の結果と指示を確認して、次のBVHノードへの移動方法を決定します。
(...)
本明細書では、テクスチャプロセッサベースの光線追跡加速方法およびシステムについて説明する。
固定機能BVH交差テストおよびトラバース(レイトレーサにおける一般的で高価な操作)論理は、テクスチャプロセッサ上で実施される。
これにより、高い面積および労力のコストを増大させることなく、光線追跡の性能および電力効率を実質的に改善することが可能になる。
テクスチャ処理に使用されるテクスチャプロセッサおよびシェーダユニット内の高帯域幅パスは、BVH交差テストおよびトラバーサルに再利用されます。
一般に、テクスチャプロセッサは、レイデータおよびBVHノードポインタ情報を含む命令をシェーダユニットから受け取る。
テクスチャプロセッサは、例えば16ダブルワード(DW)ブロックロードを使用してメモリからBVHノードデータをフェッチする。
テクスチャプロセッサは、ボックスノードに対しては4つのレイボックス交差と子ソートを実行し、トライアングルノードに対しては1つのレイトライアングル交差を実行する。
交差結果はシェーダユニットに返されます。
特に、固定機能光線交差エンジンが、テクスチャプロセッサ内のテクスチャフィルタパイプラインに並列に追加される。
これにより、シェーダユニットは、レイデータ(レイの原点とレイの方向)とBVHツリーのBVHノードへのポインタを含むテクスチャ命令を発行できます。
テクスチャプロセッサは、メモリからBVHノードデータをフェッチし、BVHノードからのデータとレイデータの両方を固定機能レイ交差エンジンに供給することができる。
光線交差エンジンは、BVHノードのデータを調べて、光線ボックス交差テストまたは光線三角交差テストを実行する必要があるかどうかを判断します。
光線交差エンジンは、それに応じてそのALUまたは計算ユニットを構成し、交差データを計算するために、構成された内部ALUまたは計算ユニットを通して光線データおよびBVHノードデータを渡す。
交差テストの結果に基づいて、ステートマシンはシェーダユニットが内部スタック(トラバーサルスタック)をどのように進めてBVHツリーをトラバースするべきかを決定します。 ステートマシンは、固定機能またはプログラム可能にすることができます。
交差テストの結果および/または次に(トラバースする必要がある順番で)トラバースする必要があるノードポインタのリストは、テクスチャデータリターンパスを使用してシェーダユニットに返される。
シェーダユニットは、交差点の結果と受け取った指示を確認して、BVHツリー内の次のノードへの移動方法を決定します。
ソース:techpowerup - AMD Patent Shines Raytraced Light on Post-Navi Plans
解説:
Naviにはレイトレーシングのハードウェアアクセラレーション機能があるかもしれないという話です。
もっともこれは次世代Naviの話で、今年発売されるNaviではないようです。
これらの予測はAMDが取ったパテントの内容からですので、ほぼ正確といってよいと思います。
私も詳細はまだ読み込んでいないのですが、nVidiaの方式と比較するとかなり単純な方式になっているようですので、シリコンの面積もあまりとらないことが予想されます。
そのため、PS5やXboxに実装されている可能性もあるのかなと思いました。
この辺は素人の私では全くあたりすらもつけられないので、テクニカルライターさんの解釈などを聞いてみたいところです。
ここまでくるとわたくしも用語を調べながらやってますので翻訳自体をあまりいじってませんので、その旨お断りしておきます。
次世代Naviにはハードウェアレイトレーシングが実装される可能性があることと、これらの仕組みがPS5やXboxにも搭載されるかもしれないということを理解しておいてください。
これにはちょっと驚かされました。