hUMA
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/20 16:25 UTC 版)
「ユニファイドメモリアーキテクチャ」の記事における「hUMA」の解説
ヘテロジニアス・ユニフォームメモリアクセス (heterogeneous Uniform Memory Access) とは、UMAの中でもさらに統合が進み、CPUとGPUがメモリマップまで統合されているUMAのことを指す。AMDがHSA (Heterogeneous System Architecture) の鍵となる技術の一つとして発表した。 CPUとGPUで同じメモリマップを共有しているということは、必然的にGPU側もページフォールトに対応し、MMUで仮想メモリ管理が可能となっていることになる。また、hUMAではCPUとGPUのメモリ一貫性(メモリコヒーレンス/メモリコヒーレンシ)がハードウェアレベルで確保されており、CPUとGPUが扱うデータの一貫性や同期をソフトウェア側で気にする必要がなくなる。これはGPUを汎用目的に利用するGPGPUにおいて大きなメリットとなる。 つまり、hUMA環境において、あるメモリアドレスは、CPUやGPUにかかわらず同じアドレス空間内の同じメモリ番地を指すということである。一見当たり前の話に聞こえるが、hUMAではない一般的なUMAではメモリという部品を容量で用途別に分けあっているだけなので、CPUとGPUで異なるアドレス空間を持ち、それぞれ個別にアドレスが振られているうえにメモリ自身もあくまで別物扱いである。それゆえに例え同じアドレス値であっても、CPU用のアドレスとGPU用のアドレスでは全く別のメモリ番地を指している。CPUとGPU間(これは、PCにおいては同時にマザーボードとビデオカード間をも指す)に接続されたバスを通して転送するしか、両者間でデータのやりとりは不可能である。しかし、先述の通りhUMAの場合は単純に同じアドレスのメモリ領域でデータを読み書きするやりとりだけで済み、ソフトウェアによるデータ転送の手間が省ける。また、現在のGPUではCPUのようにポインタを駆使した複雑で柔軟なデータ構造を直接扱うことができず、GPU向けにいったん分解や再構築が必要となるが、hUMA環境ではそのまま扱えるようになる。
※この「hUMA」の解説は、「ユニファイドメモリアーキテクチャ」の解説の一部です。
「hUMA」を含む「ユニファイドメモリアーキテクチャ」の記事については、「ユニファイドメモリアーキテクチャ」の概要を参照ください。
- hUMAのページへのリンク