後藤弘茂のWeekly海外ニュース

AMDが次期APU「Kaveri」の概要を発表

AMDがサンノゼで技術カンファレンスを開催

Lisa Su(リサ・スー)氏(Sr. VP & GM, Global Business Units, AMD)

 AMDの次期APU「Kaveri」の姿が見えてきた。AMDは米国カリフォルニア州サンノゼで開発者向けカンファレンス「APU13」を開催(11月11~13日)している。初日のキーノートスピーチで、Lisa Su(リサ・スー)氏(Sr. VP & GM, Global Business Units, AMD)は、Kaveriの概要とリリース日程を発表した。

 Kaveriは今年(2013年)中に顧客に出荷される。ノートPC、デスクトップPC、サーバー、組み込みの全分野で提供される。デスクトップでのソケットは「FM2+」となる。FM2+は来年(2014年)1月14日にアベイラブルになる予定だ。詳細は来年1月のCES(Consumer Electronics Show)で明らかにされるという。

 Kaveriは、4コア2モジュールのSteamroller(スチームローラ)コアに、8 CU(Compute Unit)で512コア(FMAD)のGCN(Graphics Core Next)GPUコアを備える。今回明かされたバージョンのKaveriの演算パフォーマンスはチップトータルで856GFLOPS。HSA(Heterogeneous System Architecture)のキーフィーチャであるhUMAメモリアーキテクチャとhQディスパッチをサポートする。また、AMDのハードウェアオーディオ技術「True Audio」も実装し、グラフィックスAPIではAMDの新しい「Mantle(マントル)」もサポートする。

 KaveriはAMDの3世代目のメインストリームAPUだ。GLOBALFOUNDRIESの28nmバルクプロセスで製造されていると見られている。最大の特徴はアーキテクチャを変更することで、CPUコアはシングルスレッド性能が強化されたSteamrollerコアになり、GPUコアはディスクリートGPUと同じGCNになった。

 現行のAPUを製造するGLOBALFOUNDRIESの32nm SOI(Silicon-On-Insulator)プロセスから28nmバルクへと微細化したことで、チップに載せることができるトランジスタ数が増えた。Kaveriでは、それをCPUアーキテクチャ拡張とGPUのアーキテクチャ拡張&演算リソースの増大に費やした。

AMD CPUダイサイズ移行図
PDF版はこちら

 Su氏によると、Kaveriのダイの47%がGPUコアで占められているという。32nm SOIから28nmバルクの移行では、動作周波数の向上はあまり望めないが、トランジスタ密度は高まるのでアーキテクチャは拡張できる。

最初のskuのKaveriではGPUコアは720MHzで動作

 APU13でSu氏が明らかにしたKaveriのパフォーマンスは単精度浮動小数点演算で856GFLOPS。これは、CPUコアを3.7GHz、GPUコアを720MHzで動作させている性能だ。Su氏は、このパフォーマンスのほとんどはGPU側だと説明する。では、この856GFLOPSという収まりの悪い数字はどこから来るのか。

 Kaveriの4コア=2モジュールのSteamrollerコアは、1モジュール当たり128-bit(単精度なら4-way)のSIMD(Single Instruction, Multiple Data)ユニットを2個備えており、それぞれ積和算(MAD)が可能だ。そのため、2モジュール×2ユニット×4-way×2オペレーション×3.7GHzで、CPUコアの演算パフォーマンスは118.4GFLOPSとなる。

 一方、GPUコア側は8個のCUを備えており、各CUには16-wayのベクタユニットが4ユニットある。それぞれの演算ユニットが積和算が可能だ。そのため、8 CU×16-way×4ユニット×2オペレーション×720MHzでGPU側のパフォーマンスは737.28GFLOPSとなる。CPUコアとGPUコアを合計すると856GFLOPSとなる。もちろん、これは理論上のピーク性能で、実効性能は異なる。

 今回明らかにされたKaveriの、この856GFLOPSという性能は、期待より低い。そもそも、これまでAMDは、Kaveriの世代でAPUの性能を1TFLOPSにすると説明してきた。例えば、2012年2月に開催したアナリスト向けカンファレンス「Financial Analyst Day 2012」では、Su氏が下のようなスライドで2013年のAPUでTFLOPSの大台に乗せるとしていた。しかし、少なくとも今回の明かされたローンチ時のKaveriは、1TFLOPSには届かないようだ。

 パフォーマンスが低い最大の理由は、CPUコアとGPUコアの動作クロックが低いことだ。特にGPUコアの低さが目立つ。例えば、デスクトップ版のRichland(リッチランド)では最高844MHzでGPUコアを駆動している。もし、Kaveriの構成でCPUコアをターボ時4.4GHz、GPUコアを844MHzで駆動すれば、チップ全体の理論上のピーク性能は1TFLOPSに達する。

 GCNアーキテクチャから考えて、28nmだからといって物理的にクロックを上げることが難しい理由は考えにくい。想定できるのはTDP(Thermal Design Power:熱設計消費電力)との兼ね合いだ。その場合は、オーバークロッキングのヘッドルームがあることになる。

シングルスレッド性能を強化したCPUコアSteamroller

 KaveriのCPUコアのSteamrollerは、Bulldozer(ブルドーザ)系アーキテクチャの大幅拡張版だ。最大の特徴は、命令デコーダを2並列にしたこと。これによって、Bulldozerのボトルネックだったフロントエンドの問題を解消し、シングルスレッドの性能を引き上げる。

 Bulldozer系マイクロアーキテクチャでは、2個のCPUコアを1モジュールに融合させており、2スレッドを並列に走らせることができる。Bulldozerモジュールでは、整数コアとL1データキャッシュはスレッド毎に備えているが、命令デコーダを含むフロントエンドと浮動小数点演算ユニットは2スレッドで共有する。命令デコーダは4-wayが1ユニットだけで、ここがボトルネックの1つだと指摘されてきた。

 それに対して、Steamrollerでは、2スレッドがそれぞれ専用の4-way命令デコーダを備える。サイクル当たりの内部命令のディスパッチ数はスレッド当たり最大25%増やすことができるという。Steamrollerでは実行ユニット側やメモリサブシステムも強化されるが、主眼はスレッド当たりのIPC(Instruction-per-Clock)の向上にある。

Steamrollerのアーキテクチャ
PDF版はこちら

PS4の半分以下のKaveriのGPUコア

 KaveriのGPUコアは、8個のCUで構成されていることが今回正式に明らかにされた。すでに説明したように、GCNでは64個のMADユニットが1個のCUに収められている。MAD専用ユニットの数だけを比較すると、Llanoの320ユニットから、Trinityの384、そしてKaveriの512へと増える。ただし、LlanoのVLIW5では、80ユニットのスーパーファンクションユニットもMADとして使うことができるので、理論上ではLlanoとTrinity系でMAD数はほぼ同じだ。Kaveriは、GPUコアの演算ユニット数でも、33%増える大きな飛躍となる。

CGNのアーキテクチャ
PDF版はこちら
TrinityとLlanoのGPU
PDF版はこちら

 ちなみに、今週米国で発売となるPlayStation 4(PS4)のAPUは、同じくGCNアーキテクチャで18ユニットのCU、合計1,152個のMADユニットを備える。つまり、演算ユニット数だけを見れば、KaveriはPS4の半分以下となる。実際には、KaveriのGPUコア数は、メモリ帯域側の制約を考えれば妥当なラインだ。ただし、今回発表されたKaveriのスペックでは、コアを低周波数で動作させているため、性能ラインはさらに低くなっている。

AMD CPUアーキテクチャの遷移
PDF版はこちら

hUMA対応が改めて確認されたKaveriアーキテクチャ

 AMDは今回のAPU13で改めてKaveriが「hUMA(heterogeneous Uniform Memory Access:ヒューマ)」対応アーキテクチャであることを強調した。hUMAはCPUとGPUのメモリ空間を統一するアーキテクチャだ。CPUコアとGPUコアが、マルチコアのCPUコア同士のように、フルにメモリコヒーレンシを取った状態で、単一のメモリアドレス空間に自由にアクセスできるようにする。hUMAは、ヘテロジニアス(Heterogeneous:異種混合)コンピューティングのフレームワーク「HSA」の核となる要素だ。hUMAの導入によって、GPUで走る汎用プログラムを、今よりもっと簡単に書けるようになる。hUMAの導入は、HSAの75%までの完成を意味する。

 hUMAでは、双方向のメモリコヒーレンシ、ページャブルメモリ、CPUとGPUの間でのユニファイドメモリ空間を実現する。メモリコヒーレンシのポイントはハードウェアで制御すること。ページャブルメモリではページフォルトをGPUがサポートすることで、自由にメモリ全体にアクセスできるようになる。その結果、CPUとGPUが、フルにバーチャルメモリ空間を共有できるようになる。

 hUMAの利点は、CPUとGPUの間での連携が容易になることだ。パラレルタスクとシリアルタスクが細粒度で入り組んだようなプログラムも、効率的に実行できるようになる。ヘテロジニアスコンピューティングでの、プログラマ側の負担をできる限り削る。

 CPUとGPUが同じバーチャルメモリアドレスを共有するhUMAでは、CPUのメモリ上のデータ構造にそのままGPUがアクセスできる。単にポインタを渡すだけで済むようになるためプログラミングが非常に容易になる。

 加えて、KaveriはHSAのタスクキューイング&ディスパッチモデルの「hQ」にも対応する。hQを使うと、GPUコアにもCPUコアのように簡単に低レイテンシでタスクを投げることが可能になる。HSAのキーフィーチャの2つが揃うのがKaveriということになる。

True AudioもサポートするKaveri

 さらにAMDは、Kaveriにハードウェアオーディオプロセッサ「AMD True Audio」も実装する。コアテクノロジはEDA(Electronic Design Automation)メーカー最大手のCadence Design Systemsが買収したプロセッサIPベンダーTensilicaのオーディオDSPだ。オーディオ処理を、CPUコアでもGPUコアでもなく、専用DSPにオフロードする。CPUに負荷をかけることなく、高品質かつ高機能なオーディオを実現する。

 また、GCNベースであるため、AMDの戦略的なグラフィックスAPI&ランタイム「Mantle(マントル)」もKaveriをサポートする。Mantleはミドルウェアのような上位のソフトウェア層ではなく、DirectXのような低位のグラフィックスAPIとドライバのソフトウェア層だ。一言で言えば、ゲーム機のように薄いソフトウェア層によって、GPUコアのパフォーマンスを引き出すことだ。

 Mantleのコンセプトは、ゲーム機のグラフィックスソフトウェア階層とよく似ている。新世代のゲーム機アーキテクチャを征したAMDにとっては、ゲーム機とPCの橋渡しをMantleで実現できる。問題は、Mantleをサポートできるインストールドベースが少ないと、ソフトウェアベンダーのMantle対応が進まないこと。Kaveriから始まるAPUでのMantleサポートは、そのためにAMDにとって非常に重要となる。ちなみに、同じことはTrue Audioについても言える。True Audio対応のソフトウェアを増やすためにはインストールベースを増やす必要があり、そのためにAPUにも実装することが必須だった。

(後藤 弘茂 (Hiroshige Goto)E-mail