ハードウェアレイトレーシングにおいて、シェーダーの実行が再スケジュールされるような機能が標準に搭載されるようです。NVIDIAでは RTX40 シリーズで SER (Shader Execution Reordering) を搭載しており、パフォーマンス向上を宣言していました。
SERの話については、Qiita の @shocker-0x15 さんが書かれた記事がとても分かりやすいのでそちらを参照して下さい。ざっくり要約すると、素直な実装ではレイトレーシング処理中に発生するシェーダーの実行ダイバージェンス(実行ペナルティ)が高くなっていきます。レイトレーシング処理中のスレッドの分岐が様々になるためです。このとき、処理単位を並び替えをするなどでペナルティを軽減し、高速なレイトレーシング処理を維持する機能が SER です。

この SER は、 DirectX Raytracing 1.2 (DXR 1.2) で標準化されています。
さて、この SER ですが、Intel では Arc Graphics シリーズで同様の機能が搭載されていました。DXRシェーダーのディスパッチを処理する専用のハードウェアブロック TSU (Thread Sorting Unit)を搭載しています。


TraceRay の中で処理が開始されると TSU は自動で有効になります。ワークグループがどのように割当てになるかは参考元のページに詳しく記載があります。とくに注意すべき点として、レイクエリータイプのレイトレーシング処理では、この TSU が無効になるということです。
参考元: Intel® Arc™ Graphics Developer Guide for Real-Time Ray Tracing in Games
今のところ、AMDのGPUでは同様の機能があるのか、見つけることができませんでした。しかし、DXR 1.2 で標準になったということは、ドライバレベルでの機能提供はされるだろうと私は期待しています。ハードウェアで搭載されるのはもう少し先ですかね。
余談。とりあえずこのあたりのボードでも機能を試すことができるだろうか…
コメント