1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 40シリーズ編】

ITmedia PC USER / 2024年7月18日 19時30分

 ゆえに、CUDAコアが実行することになるライティングやシェーディングのプログラムは同一のもので、ほぼ同じテクスチャーを参照することになる。となれば、大増量されたL2キャッシュの利用効率もすこぶるよい。

 しかし、レイトレーシング法の場合、隣接する“近しい”ピクセル群から発射されたレイたちも、それぞれの発射角度が異なれば、異なる3Dモデルのポリゴンに衝突する可能性もある。放たれたレイたちが衝突先のポリゴンで“反射”する場合も、それぞれ全く異なる場所にある3Dモデルのポリゴンに当たることも多くなるだろう。

 すると、各レイがライティングやシェーディングのためにCUDAコアに外注するシェーダープログラムはバラバラなものになる。当然、L2キャッシュの利用効率も悪くなる。場合によっては、別の仕事で忙しいCUDAコアが受注に応じられない可能性も否定できない。

 CUDAコアを含めて、近代GPUのプログラマブルシェーダー類は、SIMD(Single Instruction Multiple Data:1命令で複数データを取り扱うモデル)から発展した実行モデル「SIMT(Single Instruction Multiple Threads:1命令で複数スレッドを取り扱うモデル)」を採用している。ゆえに、一番パフォーマンスを高められるのは「同一のシェーダープログラムを、ひとまとめにされた複数スレッド(ピクセル)に対して実行したとき」となる。このモデルは、ラスタライズ法での活用を想定して作られたものなので、どうしてもレイトレーシング法のレンダリングメカニズムとは相性がよくない。

 レイトレーシング法でも、レンダリングのパフォーマンスを向上できないか――そこでNVIDIAが仕込んだ新しい概念が「Shader Execution Reordering(SER)」だ。

 SERは、衝突したとみなされたレイがプログラマブルシェーダーに仕事を発注する際に、「同一のシェーダープログラムで実行できそうな発注」を整理して、可能な限りまとめてから発注する役割を持つ。いわば「交通整理人」のような役割といえる。

 これにより、「同じシェーダープログラムが別のCUDAコアで動く」という非効率な状況を抑えることができる。逆にいえば、同じCUDAコアで局所性の高いスレッド(例えば同じ材質の処理)を複数扱えるようになるので、L3キャッシュの利用効率の向上も期待できる。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください