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

DirectXGPU種別によらないプログラミングを可能とする技術「HLSL(High Level Shader Language)を使ってコーディングする」

DirectX 11のDirectComputeに対応した環境でC++による開発を実現。


あ、なんとなくわかってきた。


FSAIL(バーチャルISA)とJITをかませる事によって、CPUやGPU(GPUも世代によって命令セットが異なるケースがある)の命令セットの差異を吸収できる。


こうすれば、同じ開発言語(OpenCLC++ AMPでコーディングする、これをFSAIL型のバイナリとしておく)で、CPUコアとGPUコアを同時に使う(実行時にFSAILバイナリをJITコンパイラで、CPU/GPUそれぞれのネーティブ命令を生成する)ことができる。


その結果CPUとGPUを無駄無く動かせて、今まで以上にパフォーマンスを実現できるということか。