GPUコンピューティングにおけるAPUとHSA
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/26 23:37 UTC 版)
「AMD Accelerated Processing Unit」の記事における「GPUコンピューティングにおけるAPUとHSA」の解説
「GPGPU」も参照 旧来のGPUはグラフィック処理に関する機能のみに特化していたが、プログラマブルシェーダーの出現以降、汎用性に関してもその能力を拡大させてきた。GPUの高い並列処理性能を汎用処理にも活用し、コプロセッサ的な役割をさせる取り組みがGPGPUである。AMD(旧ATI)も早くから自社GPU(FireStream、Radeonなど)を活用したストリームプロセッシング技術 (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とHSA」の解説は、「AMD Accelerated Processing Unit」の解説の一部です。
「GPUコンピューティングにおけるAPUとHSA」を含む「AMD Accelerated Processing Unit」の記事については、「AMD Accelerated Processing Unit」の概要を参照ください。
- GPUコンピューティングにおけるAPUとHSAのページへのリンク