メディア

新時代到来! ヘテロジニアス・コンピューティング最新動向【前編】プロセッサ/マイコン(4/4 ページ)

» 2014年02月06日 14時45分 公開
[本間文EE Times Japan]
前のページへ 1|2|3|4       

HSAのキモとなるhUMAとhQ

 HSAプログラミングモデル実現にあたっては、ハードウェアレベルの対応も不可欠になる。そこで鍵となるのが、“hUMA”と“hQ”と呼ばれるHSA機能だ。

 “hUMA”(heterogeneous Uniform Memory Access)は、CPUとGPUがメモリアドレスを共有し、CPUとGPUそれぞれのメモリにページマッピングできるようになる。これにより、CPU側のメモリデータをGPU側のメモリにコピーすることなく読めるようになり、その逆にGPU側のメモリデータにCPUがアクセスすることもできるようになる。

 また、hUMAでは、GPUコアがCPUコアとハードウェアレベルでメモリコヒーレンシを取ることで、より効率的にもう一方のメモリにアクセスできるようになる。この他、hUMAではCPUとGPUのプロセス間通信を行うシグナリングについても定義されている。

左=現状のメモリアーキテクチャと、hUMAの違い。右=CPUとGPUがメモリアドレスを共有し、CPUとGPUそれぞれのメモリにページマッピングできるようになる。これにより、CPU側のメモリデータをGPU側のメモリにコピーすることなく読めるようになり、その逆も可能になる (クリックで拡大)
左=hUMAのサポートにより、アプリケーションがGPUを利用するハードルを一段低くすることが可能になる。右=さらにGPUとCPUのプロセス間通信を実現することで、命令バッファの転送なども不要になり、アプリケーションをGPUに近いところで実行できるようになる (クリックで拡大)
HSAのアーキテクチャを説明するAMDのフィル・ロジェース氏(フェロー)。同氏はHSAファウンデーションの議長も務める

 一方、“hQ”(heterogeneous Queing)は、OSを介さずにユーザーモードでGPUのキュー(待ち行列)に演算処理のパケットを発行できるようにする仕組みだ。現在、GPUで汎用演算処理を行うためには、アプリケーションは、まずOSのAPIを通じてグラフィックスドライバ経由でGPUにアクセスすることになり、複雑かつオーバーヘッドが大きくなるという欠点がある。

 これに対し、hQでは、HSAランタイムを介して共有メモリアドレス空間にHSAキューを生成し、OSを介することなくユーザーモードでGPUで実行するパケットを発行することができるようになるため、あたかもGPUをCPUコアと同じように扱えるようにできる。また、このHSAキューは、HSAランタイムを介してCPUにも利用できるため、CPUとGPUのシームレスな連係を可能にする。HSAファウンデーションでは、このhQのパケットフォーマットやプロトコル、キューイング言語を定義し、アプリケーションが容易にGPUを並列演算処理に利用できるようにしている。

 そして、これらの機能にハードウェアレベルで対応したのが、2014年1月14日に正式発表された最新のAMD Aシリーズプロセッサ“Kaveri”というわけだ。

hQは、OSを介さずにユーザーモードでGPUのキュー(待ち行列)に演算処理のパケットを発行できるようにする (クリックで拡大)
左=現在、アプリケーションがGPUを利用しようとすると、OSのAPIを通じてグラフィックスドライバ経由でGPUにアクセスすることになり、複雑かつオーバーヘッドが大きくなるという欠点がある。右=hQでは、HSAランタイムを介して共有メモリアドレス空間にHSAキューを生成し、OSを介することなくユーザーモードでGPUで実行するパケットを発行することができるようになる (クリックで拡大)
hQのサポートによって、アプリケーションはCPUを利用するときと同じように、ダイレクトにGPUを利用できるようになる
前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.