全国高校eスポーツ選手権運営の舞台裏。APU」として発表した。Architecture)のプログラムを実行できることが最大の特徴となる。CESの会場で公開し、HSA未対応の場合に比べて8倍高速に実行できる様子などをデモした。その一方、AMDは以前からのAPUの課題をまだ乗り越えることができていない。1つはAPUに最適化されたソフトウェアがまだまだ少ないと言うことであり、もう1つはユーザーの“CPU性能こそすべて”という信仰を打ち破ることだ。これらをどのように実現していくかが、HSAにとっての飛躍の鍵となる。hUMAやhQに対応することでHSAアプリケーションへの準備が整ったKaveri今回AMDが発表したKaveriの最大の特徴は、HSAに対応していることだ。Foundationが標準化を進めているオープンスタンダードのプログラミングモデルで、開発者にC++など現在利用している言語をそのままに、CPUとGPUを1つのプロセッサのように扱えるようにしたのが最大の特徴だ。開発者は現在のプログラミング知識の延長線上で、CPUとGPUを透過的に利用して演算性能を引き出せる。以前は汎用をCPUが、グラフィックス周りだけをGPUが演算していた。現在はGPUがパラレル型の汎用演算が可能な形へと進化しているため、大量のデータを処理する場合にはGPUを利用して演算した方が効率良くなってきている。このため、シリアルデータを処理する場合にはCPUを、パラレルデータを処理する場合にはGPUを利用する形が将来は一般的になると考えられており、HSAはそのための基礎となるプログラミングモデルになる。HSAに対応するには、いくつかのハードルを越える必要がある。大きく2つあり、それがメモリアドレス空間と命令実行のキューをCPUとGPUで共有する仕組みだ。前者はhUMA(ヒューマと読む)という仕組みでKaveriに実装されており、CPUとGPUが最大32GBのメモリアドレス空間を共有する。これまでは、CPUとGPUのメモリは、物理的には同じメインメモリ上にあっても、ソフトウェアからはそれぞれ別のメモリ空間と認識されており、開発者は明示的にそれがどのメモリアドレスなのかを意識しながらプログラミングする必要があった。hUMAにより、CPUとGPUが同じメモリアドレス空間を共有するため、1つのメモリアドレスを意識するだけでプログラミングできる。後者はhQで実装されており、プログラムが発行した命令をCPUが処理するのか、GPUが処理するのかを振り分ける。これによりCPUとGPUは、より効率の良い方を利用して処理できる。KaveriにはこうしたhUMAやhQが標準で実装されており、開発者がHSAの開発キットなどで開発したアプリケーションを実行可能としたのだ。290Xなどに採用されている開発コードネーム「Hawaii」で知られる改良版GCNアーキテクチャコアのGPUを内蔵している。AMDのAPUとしては3世代目にあたり、前世代のTrinity(トリニティ)/Richland(リッチランド)、2世代前のLlano(ラノ)に続く製品となる。32nmSteamrollerは、前世代のPiledriverと同じくBulldozerコアの改良版となるAMDのx86プロセッサコアのデザインとなる。Cycle、1サイクルあたりに実行できる命令数、つまり同じ実時間で実行できる命令数)が全体で10%改善している点だ。KaveriはこのSteamrollerコアを4コア搭載している。厳密に言えば、Bulldozer/Piledriver/Steamroller系統の製品は浮動小数点演算器とL2キャッシュなどを2つのコアで共有するモジュール構造になっているので、このモジュールが2つあるというのが正しい言い方になるだろう。SKUによっては2コアの製品があるが、そうした製品はモジュールのうちの1つを無効にした形で提供される。GPUは改良版GCNアーキテクチャがベース。290XとKaveriのGPUデザインは共通ということになる。290シリーズでは1つのジオメトリプロセッサ、ラスタライザ、それぞれに11個のコンピュートユニットを備えたシェーダエンジンが4つ実装されているのに対して、Kaveriに内蔵されているGPUは1つのジオメトリプロセッサ、ラスタライザ、8個のコンピュートユニットを備えたシェーダエンジンが1つという構造になっている。AMDはこうしたKaveriの特徴を捉えて、Kaveriには12個のコンピュートコアがあるとアピールしている。4つのCPUコアと、8つのGPUのコンピュートコアを足して12個という計算だ。CPUとGPUはそれぞれ役割が異なっており、それを12コアと呼ぶことに大きな意味は無い。マーケティング上はそうしたわかりやすさが大事なのも事実で、汎用演算に使える演算装置が12個あるというのは技術に詳しくないユーザーに対するアピールとしては意味があるだろう。AMDのコンピュートコアの概念。CPUコアとGPUコアがメモリコントローラやキャッシュメモリに対して同列にぶら下がっている。処理に応じて適したコアで演算を行なうことで、トータルでの処理能力を上げていくKaveriは4つのGPUコアと8つのGPUコアで12個のコンピュートコアを持つKaveriのCPUとなるSteamroller。290シリーズなどに利用されているHawaiiと同じ世代になる。290XのGPUのアーキテクチャ。Audio、VCE2、UVD4とオーディオ、動画周りの機能も強化されているまた、Kaveriは従来製品と比較して、ビデオ再生環境やオーディオ再生環境が強化されている。Technologyと呼ばれるプログラマブルなオーディオエンジンが内蔵されている点だ。AudioはTensilicaのオーディオDSPをエンジンとして利用したプログラマブルオーディオで、AMDがソフトウェアを定義することで、プログラムからオーディオ関連の処理に利用できる。Audioで行なうことで、CPU負荷を下げられる。Audioのサポートを呼びかけており、今後ゲームエンジンなどでサポートされるようになると、よりリアルなオーディオ環境がCPUに負荷をかけずにできるようになる。290シリーズなどでは、TensilicaのDSPエンジンは4つ搭載されている構造になっていたが、Kaveriでもその構造は基本的同じだ。Engine)が実装されている。6000シリーズ相当でVCEは実装されていなかったので、APUとしては新機能になる。YUV444(Iフレーム)のエンコード機能などが追加されており、Miracastなどのワイヤレスディスプレイ機能を実装する場合などに活用できる。Decoder)も強化され、UVD4へと進化しているが、H.264/AVCHDのデコードにおけるエラー訂正の信頼性向上だけが強化点となる。AVC/H.264の後継フォーマットについてはこの世代ではサポートされておらず、次世代の課題となる。AMDはHSAを利用することで、GPUを利用して効率よく再生することは可能としており、ソフトウェアベンダーなどにHSAによるソフトウェアの採用を呼びかけていくとしている。Audio、VCE2、UVD4のいずれも利用するにはソフトウェア側のサポートが必要になる。VCE2、UVD4に関しては下位互換性が確保されており、VCE1、UVD3に対応したソフトウェアも利用可能だ。現時点では、AMDがVCE2、UVD4に対応したアプリケーションソフトウェアを公開していないが、すでにVCE1、UVD3に対応しているソフトウェアベンダーに対して対応を呼びかけているということだった。Technologyに対応。YUV444が追加されたこと。Miracastなどのワイヤレスディスプレイ出力に利用できるUVD4と呼ばれるデコード機能。エラー訂正の信頼性が向上した程度で、基本的な機能はUVD3と同等HSAに対応した表計算アプリケーションは非対応に比べて8倍の性能を発揮このように、Kaveriは、CPUとGPUを同等に扱える仕組みをソフトウェア的(HSA)にも、ハードウェア的(hUMAやhQ)にも導入できる。これは、CPUはCPU、GPUはOpenCLからしか使うことができないIntelのCoreプロセッサに比較すると先進的な仕組みだ。一般用途向けのCPUの性能を上げることは難しく、消費電力的な観点からむしろCPUはダウンサイジングする方向に向かっていることを考えれば、CPUとGPUを同等に扱い、処理に応じてCPUとGPUに振り分けるHSAのアプローチは理にかなったモノだ。CESで開催した記者会見で、Collaboraが開発を後援する「LibreOffice」でHSAを有効にした時と、無効にした時の結果を公開した。LibreOfficeは、オープンソースのオフィススイートで、WindowsやLinuxなどで動作する。CollaboraではこのLibreOfficeをHSAに対応させたところ、表計算の性能が7倍にもなったのだという。これは特定の環境での結果であり、すべての計算が7倍になるわけではないが、必要な演算をGPUにも行なわせることで、トータルでの性能が向上する1つの例と言える。今後こうしたアプリケーションがどんどん増えていけば、これまでCPUがやっていた処理を、GPUへとオフロードできるため、処理も短い時間で終わるようになり、結果的にCPUやGPUといった演算器がフルスピードで動作している時間が減ることになる。それにより、システムの消費電力もトータルでは減るはずだ。その意味でも、エンドユーザーに対するメリットは計り知れないだろう。3製品を発表したが、発表同時にリリースされる2つのSKUのTDPは95W、第1四半期中に投入されるA8-7600のTDPは65W/45WとデスクトップPC向けの設定になっている。これは、消費電力よりも性能が重視されるデスクトップPCであるためで、ノートPC向けの製品に関してはもっと低いTDPで動作するとAMDは説明している。AMDによれば35W、15Wでも動作可能なSKUも用意されるということで、後日ノートPC版や、サーバー版、組み込み版などが追加される予定だ。AMDによれば、ノートPCは2014年の前半中に、サーバーや組み込み版に関しては2014年中というスケジュールになるようだ。ノートPCはOEMメーカーのリフレッシュサイクルに合わせるとしており、多くのOEMメーカーが製品をリフレッシュする第2四半期頃に投入されると予想できるだろう。LibreOfficeの表計算でHSAをオンとオフにしたときの差。このように、HSAに対応すると、処理の種類によるが高速にできる場合があるAMDのAシリーズのボックス。チャネル向けや自作PC向けのボックス版が先行する。OEMメーカーむけやノートPC向けは14年前半中の投入が予定されているKaveriのSKU。発表時にはA10-7850KとA10-7700Kの2つのSKUが用意され、第1四半期中にA8-7600Kが投入される古典的な問題「鶏と卵」にどのように対処していくかただ、AMDがHSAでIntelに対してアドバンテージを得るには、HSAに対応したアプリケーションが増えなければならない(むろんすでに多数登場しているOpenCL対応ソフトウェアでもある程度の効果はあることができるが......)。HSAに対応したアプリケーションが増えるためには、HSAに対応したプラットフォームが増えなければならない。新しいプラットフォームが必ず直面する「鶏が先か、卵が先か」という問題に向き合う必要がある。AMDは、多く見積もってもPC市場シェア20%というのがポジションで、残り80%以上をIntelが占めている現状を考えれば、ソフトウェア開発者が今すぐHSAに対応したアプリケーションを書いてくれるかと言えば難しいだろう。従って、そこに対して、まずはAMDやそのパートナーからショーケースになるようなアプリケーションソフトウェアを提供し、ソフトウェア開発者に対してそのメリットを理解してもらうという地道な作業が必要になる。1つAMDが抱える課題は、人々のマインドセット、具体的には「CPUこそ重要で、GPUなんてグラフィックスのためのものでしょ」という誤解を解いて、CPUとGPUを1つのプロセッサとして扱うHSAのアプローチこそ正しい未来だということを理解してもらうかということにある。率直に言って、CPU単体の処理能力で比較した場合、Kaveriと、Intelの第4世代Coreプロセッサを比べたら、Kaveriの性能は高くない。そこにGPUという要素が入れば、見事に逆転し、Kaveriが第4世代Coreプロセッサを上回ることが多くなる。これは当然の話で、プロセッサを設計する時に、ダイの面積をCPUに多く振るか、GPUに多く振るかの問題に過ぎない。AMDはこのKaveriのダイ設計で47%をGPUに割り当てている。CPUの具体的な数字は明らかにしていないが、ダイの写真を見ればわかるように、CPUが占めている部分はGPUよりも小さい(ラフにいって25~30%程度だと思われる)。Intelの第4世代Coreプロセッサは、GT3というエンジンが多いGPUを含んだダイでも30%程度に過ぎない。このデザインの結果として856GFLOPSというKaveriのピーク性能のうち、CPU由来の部分が118.4GLOPS(約14%)、GPU由来の部分が737.3GLOPS(約86%)となっている。これを見ても、将来の性能向上へのヘッドルームを考えるなら、HSAのアプローチは正しいと言えるだろう。問題はこれをユーザーに体感してもらうためにも、早急にHSAに対応したアプリケーションや、ベンチマークプログラムなどを拡充していく必要があるだろう。HSA対応というわけではないが、FutureMarkの総合ベンチマークソフトウェアであるPCMark8は最新版のv2でOpenCLなどGPUを利用した処理を増やしており、Kaveri対競合というベンチマーク結果の性能はずいぶんと変わりつつある。したアプリケーションやベンチマークが徐々に登場することで、ユーザーの考え方も徐々にではあるが、変わっていくことになるだろう。その時がいつになるのかはわからないが、少なくともこの記事を読んで頂いた読者の皆さんの考えは以前とは違っているはずだと願ってこの記事のまとめとしたい。