AMD FSA(Fusion System Architecture)コンセプトを整理してみた(メモリ編)

AMDのFSA(Fusion System Architecture)コンセプトについて、どこが革新的なのかうまく理解できなかったので、興味があるGPGPUの処理能力向上の観点で整理してみた。

AMDは今年(2011年)末の出荷を目標に開発している次世代GPUコアアーキテクチャの概要「Graphics Core Next」を発表した。AMDは、デベロッパのための技術カンファレンス「AMD Fusion Developer Summit(AFDS)」を米ワシントン州ベルビューで6月13〜16日に開催。そこで、次世代GPUコアのアーキテクチャを公開した。この次世代コアは、今後のAMDGPUプログラミングフレームワークであるFSA(Fusion System Architecture)に対応したアーキテクチャだ。汎用コンピューティングに向けた柔軟なプログラム性では、NVIDIAのFermiアーキテクチャをも凌ぐ部分が多い、革新的な新アーキテクチャとなっている。

【後藤弘茂のWeekly海外ニュース】AMDが革新的な次世代GPUアーキテクチャの概要を発表 - PC Watch

GPGPU処理能力の向上の工夫(2点)

GPU自体の改善のほかに以下2点の改善点がある。

  • CPU/GPUのメモリー周りの改善と高速化
    • 従来: CPUとGPUのL2キャッシュは独立
    • FSA: CPUとGPUで相互のL2キャッシュのコヒーレンシを保てる(intelSandy BridgeでCPUコアと内蔵GPUコアでL3キャッシュを共有)

これが実現できるとL2キャッシュで収まる範囲のデータ転送が高速化できる。

GPUコンピューティングでも、CPU/GPU間でのデータ転送がボトルネックになりやすい。

これはかなり大きい改善につながるとと思う(逆にGPU側をフルに動かすため、GPU側のローカルメモリ活用がポイントになっている)。


既にNVIDIAのFermiアーキテクチャでもGPU側にキャッシュを持たせて、高速化を実現してる。

ただ、GPU/CPU間のキャッシュのコヒーレンシを保つところまでは実現していない。

これに対して、NVIDIAのGF100(開発コード名:Fermi)では各Streaming Multiprocessor(SM)が持つ64KBのローカルメモリをシェアードメモリ部分と1次データキャッシュ部分に分割できるようになった。

http://journal.mycom.co.jp/articles/2010/07/21/fermi_cache/index.html
  • メモリのバーチャルアドレスのハンドリング

ハードウェアで処理を行えるようになり、その分CPU負荷が下げられると読み取れる。

GPUのメモリコントローラはx86 CPUと同じバーチャルメモリ空間をハンドルするようになる。GPU側にアドレストランスレーションキャッシュを内蔵。CPUとの間でのバーチャルアドレス空間の統合を実現し、同じ64bitポインタでメモリアクセスができるようにする。

http://pc.watch.impress.co.jp/docs/column/kaigai/20110617_453941.html

この2つの改善でどの程度、処理能力が向上するのかわからないけど、結構期待を持てそう。


さてソフトウェア周りについては、また別の機会につらつらまとめてみます。