メディア

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

AMD Aシリーズプロセッサ“Kaveri”が正式に発表された。ヘテロジニアス・コンピューティングに向けたフレームワーク「HSA」対応アプリケーションの開発プラットフォームとしても期待を集めているKaveri。Kaveriの詳細やARMの動向を交えながらHSAの現状と今後を考察する。

» 2014年02月17日 13時30分 公開
[本間文,EE Times Japan]

「前編」はこちら

HSA対応APU“Kaveri”

 初のHSA対応APUとなった“Kaveri”は、CPUコアに第3世代のBulldozerアーキテクチャ“Steamroller”(スチームローラー)モジュールを採用するとともに、GPUコアを最新グラフィックスカードであるAMD Radeon R9 290Xと同等のGCN(Graphics Core Next)アーキテクチャに変更された。さらに、hUMAに対応すべく、CPUとGPUの内部バスも見直されている。

Kaveriは、CPUコアに第3世代のBulldozerアーキテクチャコアとなる“Steamroller”を採用 (クリックで拡大)
Steamrollerコアでは、キャッシュや分岐予測などの精度向上によってIPC(Instruction Per Cycle:1サイクルあたりの命令処理性能)を引き上げている (クリックで拡大)

GPUをGCNアーキテクチャベースに変更

Kaveriのアーキテクチャを説明するAMD CTOのジョー・マクリ氏

 HSA対応での最大の進化は、GPUをGCNアーキテクチャベースに変更したことだ。GCNアーキテクチャでは、16個のベクター演算ユニット(ALU)でSIMDユニットを組み、このベクターSIMDユニットを4基(計64SP:Streaming Processor、またはRadeon Core)と1基のスカラプロセッサ、4基のテクスチャフィルタリングユニット、16KバイトのL1キャッシュで構成されるCU(Compute Unit)を最小単位としている。GCNアーキテクチャでは、このCUごとに命令発効ユニットやロード/ストアユニット、16Kバイトの命令キャッシュと32Kバイトのデータキャッシュが搭載され、個々のCUで独立したカーネル処理を可能にする。また、CUに搭載されたスカラユニットは、フル機能の整数演算機能を備え、コントロールフローやAMD GPUの演算実行単位である「Wavefront」(64スレッドをまとめたもの)の制御を行うことでSIMDユニットを効率よく機能させることができる。

 GCNアーキテクチャでは、汎用並列演算処理のフロントエンドプロセッサとしてACE(Asynchronous Compute Engine)を搭載し、同ユニットが演算のためのスケジューリングや命令発行を制御する。Kaveriでは、最大8基のCUでGPUを構成し、それと同数のACEを搭載し、CUの汎用コンピューティング処理を効率よく利用できるようにしている。このACE 8基という構成は、同社のフラグシップGPUである、44基のCUを統合するRadeon R9 290Xと同じ数であり、KaveriがいかにGPUを使った汎用GPU演算に注力した設計をしているかが分かる。

Kaveriの第の47%を占有するGPUコアは、最新のGCNアーキテクチャになった (クリックで拡大)
GPUコアのコンピュート機能の核となるCUは、64基のALUをまとめたGPUクラスタだ (クリックで拡大)
CUに汎用並列処理命令の発効などを行うACE(Acynchronous Compute Engine)は8基搭載されている。この数は、同社のフラグシップGPUであるRadeon R9 290Xと同じ数だ (クリックで拡大)

もう1本の専用バス

 一方、内部バスの拡張では、CPUとGPUのメモリコヒーレンシを取るための専用バスを拡張している。従来のAMD-AシリーズAPU(Trinity/Richland)では、I/OコントローラとしてIOMMU v2(Input/Output Memory Management Unit)が搭載され、GPUがCPU側のメモリに仮想メモリアドレスでアクセスできるようにし、CPUとGPU間を256ビットの内部バス“Fusion Control Link(FCL)”で接続している。

 さらに、GPUとメモリコントローラを直接結び、より広帯域でのメモリアクセスを可能にする256ビット×2構成“Radeon Memory Bus”も用意することで、グラフィックス処理効率を引き上げている。これに対して、Kaveriでは、GPUとCPU間にさらにもう1本の256ビットバスが加えられている。これは、CPUとGPUのメモリコヒーレンシを取るための専用バス(コヒーレントバス)であり、CPUもしくはGPUがメモリを書き換えると、もう一方が書き換えられたメモリデータにアクセスできるようしている。ただし、CPUとGPU間でメモリコヒーレンシを取る必要がある場合は、お互いのメモリの同期に余分な時間を割く必要が生じる。このため、Kaveriでは従来のFCLはそのままに、もう1本の専用バスを加えることで、CPUとGPUがシームレスにメモリアドレス空間を共有できるようにしている。これこそが、HSAにおけるhUMAやhQに対応するためのハードウェア拡張といえる。

 これらの拡張により、KaveriではCPUが持つ119GFLOPSに、GPUの737GFLOPSを加えた、856GFLOPSという強力な演算性能を、一般アプリケーションにも利用しやすくなる。このため、AMDはKaveriに搭載されたCPUコアとGPU(CU)を“Compute Core”と称し、4つのx86 CPUコアと8基のCUを合計し、「12 Compute Core APU」をうたっている。

左=Kaveriにおいて、hUMAやhQのサポートで重要な役割を果たすのがIOMMUv2だ。HSAでは、この役割をHSAMMUとし、SoCベンダーに同様の仕様を実装することを求めている。右=12コンピュートコアをうたうKaveri (クリックで拡大)
12コンピュートコアとは、4つのx86 CPUコアと、8つのGPUクラスタ(CU)を示す (クリックで拡大)
Kaveriの856GFLOPSという演算性能において、そのほとんどをGPUが担っていることが分かる (クリックで拡大)
       1|2|3 次のページへ

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.