AMD FSA(Fusion System Architecture)を整理してみた(ソフト編)
この前は主にバス周りについてつらつら書いてみたので、今度はソフトウェアについて書いてみた。
AMD FSA(Fusion System Architecture)コンセプトを整理してみた(メモリ編) - .h2oのお気楽日記
記事中にJITやFSAILと、一見するとGPUと関係ない単語が並んでるけど「ヘテロジニアス(Heterogeneous:異種混合)」がキーワードになって話がつながっている。
今後のプログラミング&実行モデルの構想「Fusion System Architecture(FSA)」の全貌を明らかにした。FSAの目的は、GPUコアをCPUコアと同列に扱えるようにすることで、GPUのプログラミングを劇的に容易にすること。また、GPUコアとCPUコアの連携を容易にすることで、より小さな粒度の並列コードも効率的に実行できるようにすること。
【後藤弘茂のWeekly海外ニュース】GPUをCPUのように扱えるFusion System ArchitectureをAMDが発表 - PC Watch
- その他キーワードを整理してみる。
DirectXでGPU種別によらないプログラミングを可能とする技術「HLSL(High Level Shader Language)を使ってコーディングする」
DirectX 11のDirectComputeに対応した環境でC++による開発を実現。
あ、なんとなくわかってきた。
FSAIL(バーチャルISA)とJITをかませる事によって、CPUやGPU(GPUも世代によって命令セットが異なるケースがある)の命令セットの差異を吸収できる。
こうすれば、同じ開発言語(OpenCLやC++ AMPでコーディングする、これをFSAIL型のバイナリとしておく)で、CPUコアとGPUコアを同時に使う(実行時にFSAILバイナリをJITコンパイラで、CPU/GPUそれぞれのネーティブ命令を生成する)ことができる。
その結果CPUとGPUを無駄無く動かせて、今まで以上にパフォーマンスを実現できるということか。