レンダリングパイプラインそのものをプログラマブルにしてしまうLarrabee

CPU、GPUに限らず、現在のプロセッサパフォーマンスにおいて、メモリがボトルネックとなってくることは周知の事実であり、このメモリバス消費の低減化に長けたLarrabeeアーキテクチャは、x86のコア数を増やしたときにはパフォーマンス向上がリニアに得られるという。以下の図がそのデータだ。

x86コア数とパフォーマンスの関係

図は8コアから48コアまでで実験したものになるが、前出の3つのゲームにおいて約10%の減衰率で、ほぼリニアなパフォーマンス向上が得られたことを示している。

Seiler博士によれば、最初、F.E.A.R.だけはパフォーマンス向上率の減衰率が18%もあり、他2タイトルよりも向上率が芳しくなかったという。

原因を調査したところ、F.E.A.R.では巨大な頂点バッファを確保する傾向があり、これがワークエリアを消費し、別スレッドで並列処理をさせることを阻害していたことが分かったという。そこで、200頂点ずつに分割してスレッドを発行する仕組みを入れたところ、複数スレッドで並列に頂点処理がなされるようになり、パフォーマンス向上率が、他の2タイトル並みになったとのこと。

「このように、動作させるアプリケーションごとにレンダリングパイプライン側を最適化できるということがLarrabeeのならではの特長だ」とSeiler博士はいう。

この他、レンダリングパイプラインに対して特別なカスタマイズを施すことも可能だとしている。

半透明が関わってくるレンダリングでは、現行のGPUでは描画順序をしっかり制御しないとつじつまの合わないレンダリング結果になってしまうことがある。これは現行のレンダリング結果の出力制御が単一のZバッファ(深度値)だけをキーにしているための弊害だ。

Larrabeeでは、レンダリング結果を複数の算術バッファに対して行うことで、描画順序に左右されにくい仕組みを提供するA-Bufferの仕組みを実装することも可能だとしている。このA-Bufferの仕組みは将来のDirectXでも導入が検討されている技術だ。

半透明が関係してくるレンダリングでは常に描画順序を意識する必要があった。Larrabeeならば、描画順序の呪縛から解放されるA-Buffer技術を導入することが可能になる?

ラスタライズ処理やZバッファに特殊な座標系の導入やバイアスを掛けることでデプスシャドウ技法がさらに進化する?

また、ラスタライズ処理やZバッファの仕組みにも特殊な座標系やバイアスを導入することで、デプスシャドウ技法における影のジャギーを低減することも出来るとしている。このアイディアについては「対数シャドウマップ技法」といった論文が過去に発表されたことがあったが、現行のGPUのラスタライズの仕組みやZバッファの仕組みでは効果的な実装が難しいとされた。Larrabeeであればこうした技術が効果的に実装できる。

ついに公開されたLarrabeeのソフトウェアスタック図

SIGGRAPHでは、この他にもLarrabee関連のセッションが予定されているので、新情報があればレポートしていきたい。

(トライゼット西川善司)