Polaris世代の新機能は何か?
だいたいのスペックが分かったところで、次にPolaris(第4世代GCN)をアーキテクチャー面から眺めてみよう。SP64基とスケジューラー、やテクスチャーユニットなどで構成されたCompute Unit(CU)を並列配置、Asynchronous Compute Engine(ACE)でグラフィックタスクとコンピュートタスクを自在に混在できる、という基本設計に変化はないものの、随所に様々な進歩が見られる。主なものを紹介しよう。
【1】ジオメトリーエンジンの強化
モデリングが複雑になるとジオメトリーの処理が重くなる。さらにテッセレーションで凹凸を増やせば、ジオメトリーの負荷はさらに増大する。これに対しAMDは2方向から解決を試みている。
ひとつは「Primitive Discard Accelerator」と呼ばれる機能だ。これはあるトライアングルを処理する際に、それが1ドットにも満たない大きさであると判断された場合は、そのトライアングルの処理をパイプラインの初期段階で捨てる機能だ。特にテッセレーションとMSAAと併用する場合に効果があるとしている。
そしてもう1つ、ジオメトリーはインデックスキャッシュに入れて再利用することも可能になった。繰り返し利用するジオメトリーが多いほどスループットが向上するというわけだ。
【2】シェーダーとメモリーバスの効率化
根本的な処理性能を上げるには、シェーダーそのものの処理効率を上げる必要がある。そこでPolarisではCUに命令プリフェッチを機能を搭載することで、処理の効率化を図っている。さらにCUの外側にあるL2キャッシュの容量を倍にし、キャッシュ効率も向上させた。
これにより色圧縮(最大8:1の高圧縮にも新たに対応)の効率も上がったほか、メモリーバスの利用頻度が下がることでGPU全体の省電力化につなげることに成功している。
【3】Asynchronous ComputeとVRの強化
シェアではライバルに押されまくっているAMDだが、GCNアーキテクチャーが備えるAsynchronous Computeは非常に魅力的な機能だが、Polarisでまた一段階進化している。
特にVRではプレイヤーの視線の動きに合わせて画像を遅滞なくレンダリングすることがVR酔いを防ぐために必要だが、AMDはAsynchronous Computeを利用することで、いつでも必要な時にグラフィックタスクとコンピュートタスクを同時処理できるとしている。
ライバルのGeForceもPascalでようやく“プリエンプション”を実装し、タスクの素早いスイッチングを可能にしたが、同時処理の方がよりエレガントだ。とはいえこれまでの実装だと、コンピュートタスクはグラフィックに対し従の関係にあったがめ、コンピュートタスクを発行しても結果が希望する時間内に得られないこともある。
そこでPolarisでは「Quick Response Queue」と呼ばれる機能を実装、グラフィックとコンピュートタスクに割り当てる比率を決定し、必要な時間内に結果を得られるようになった。
またAMDのVR環境「LiquidVR」では、CUの一部をオーディオ用として割当て、レイテンシーのリスクを負わずに高度なオーディオ処理「TrueAudio Next」が利用可能になる。GPUとレイトレーシングの技術を応用したVR向けオーディオ処理はライバルも取り組んでいるが、Quick Response Queueを利用することで音が遅れて出てしまうことを防止できる
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります