GPU コンピューティングにおける APU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/04/15 01:10 UTC 版)
「AMD Fusion」の記事における「GPU コンピューティングにおける APU」の解説
詳細は「GPGPU」を参照 旧来の GPU はグラフィック処理に関する機能のみに特化していたが、プログラマブルシェーダーの出現以降、汎用性に関してもその能力を拡大させてきた。GPUの高い並列処理性能を汎用処理にも活用し、コプロセッサ的な役割をさせる取り組みがGPGPUである。AMD(旧ATI)も早くから自社GPUを活用したストリームプロセッシング技術(ATI Stream/AMD Stream)を開発・実用化し、普及に取り組んでいたものの、競合となる NVIDIA のほうが統合開発・実行環境 CUDA の整備によって普及率の点で先行していた。 GPUは並列処理に特化することでCPUをはるかに超える理論演算性能を実現しており、それを汎用処理に活用するのがGPGPUのコンセプトだが、従来のCPUとGPUとはメモリ空間が完全に独立しており、CPU-GPU間のメモリ転送にかかる処理時間およびプログラミング上の手間が、性能のボトルネックやソフトウェア開発の難しさにつながるという問題も抱えている(たとえばGPUで演算した結果をCPUで読み出して利用する場合、従来アーキテクチャではGPUメモリからCPUメモリへのデータ転送が必要となる。これは物理的にメモリが分離されているディスクリートGPUとCPUによる構成だけでなく、従来型のオンボードグラフィックスやCPU内蔵GPUといった、物理メモリを共有する構成においても同様である)。 AMDはこの問題をハードウェアレベルで根本的に解決する道として、開発コードAMD Fusionのもとに、GPUをCPUと統合するFusion System Architecture (FSA) 構想を掲げることになる。GPUとCPUを統合することで、物理的にも論理的にもメモリ空間が統一され、煩雑なCPU-GPU間のメモリ転送をなくすことができる。 なお AMD は、2012年からはFSAをHeterogeneous System Architecture(英語版) (HSA) 構想へと改称し、さらにHSAの実装形態であるAMD Fusion改めAMD APUをもってして、異種計算資源(異種プロセッサ)混在環境をターゲットに据えた標準API規格「OpenCL」およびヘテロジニアスマルチコアテクノロジーによる CPU と GPU の融合を推進している。 Kabini/Temash世代以降ではGraphics Core Next(英語版) (GCN) 世代のGPUを搭載し、Mantle(英語版) APIにも対応した。 また、HSAの完成形を支える要素技術のうち特に重要なものとして、CPU/GPUのメモリ一貫性(キャッシュコヒーレンシ)やGPUページフォールトのサポートを実現する heterogeneous Uniform Memory Access (hUMA) が挙げられるが、hUMAに対応するAPUはKaveri世代以降である。 その他、HSA環境ではHSAIL (HSA Intermediate Language) と呼ばれる中間言語(バイトコード)によって、ハードウェアの違いを吸収できる。コンパイラ側がHSAIL生成に対応することにより、OpenCL CやC++ AMPといった並列コンピューティング向けの専用言語だけでなく、Javaのような仮想マシンベースの汎用言語でもHSA環境で動作するプログラムを記述できることになる。
※この「GPU コンピューティングにおける APU」の解説は、「AMD Fusion」の解説の一部です。
「GPU コンピューティングにおける APU」を含む「AMD Fusion」の記事については、「AMD Fusion」の概要を参照ください。
- GPU コンピューティングにおける APUのページへのリンク