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

APUをデータセンターにもたらすAMDの新サーバー戦略

サーバーにチャンスを見出すAMD

 意外かも知れないが、AMDのサーバー戦略が非常に面白い。AMDは、かつて、DRAMインターフェイスを統合してCPU同士をダイレクトコネクトしたOpteronの成功で、Intelの支配するx86サーバー市場を大きく切り崩した。しかし、Intelが同様のインターフェイスへと切り替えてからは、サーバー市場で後退を続けて来た。そのため、最近では、AMDのサーバー戦略は、人の関心を惹かない話題になってしまっている。

 しかし、実は、AMDはサーバーで最もアグレッシブに動いており、その戦略はクライアント側での動きよりも野心的だ。AMDがサーバーに注力しているのは、そこに再びチャンスを見出しているからだ。その背景には、サーバー自体が大変革期を迎えているという事情がある。

 サーバーで走らせるワークロードの変化に伴って、サーバーに求められる機能が大きく変わりつつある。そのため、新しい種類のサーバーとサーバーチップ、インターコネクトが必要とされている。その波に乗れば、AMDが再びサーバーをリードすることも可能と、AMDは考えているようだ。AMDのビジョンの行き着く先は、データセンターがヘテロジニアス(Heterogeneous:異種混合)化して行き、GPUコアやスモールCPUコアが浸透し、超広帯域なファブリックがノード間を結合し、データセンター全体がより仮想化され1つのコンピュータのように動く世界だ。

 AMDの新サーバー戦略の軸となるのは2つの製品分野だ。1つはサーバー向けAPU(Accelerated Processing Unit)で、もう1つはスモールCPUコアのサーバーCPUだ。前者にはGPUコアを、後者は64-bit ARM CPUコアを持って来る。データセンターで、GPUコアやスモールCPUコアが適したワークロードが増えているとAMDが見ているからだ。実際には、従来のサーバーCPUも継続するため、当面は3製品系列の並列となる。

SeaMicroのファブリック技術

 さらに、横軸としてAMDはサーバーに新技術を盛り込んで行く。買収したSeaMicroのチップ間ファブリック「Freedom Fabric」、HSA(Heterogeneous System Architecture)ソフトウェアインフラストラクチャ、おそらくはスタックドDRAM技術、アクセラレータハードウェア群のSoC(System on a Chip)への統合、将来的には自社マイクロアーキテクチャのARM CPUコアの開発を考えている。

従来型のサーバーCPUが適さないワークロードが急増

 GPUコアもスモールCPUコアも、伝統的なサーバーCPUの常識を覆す路線だ。これまでのサーバーCPUの常識は、大型でパワフルなシングルスレッド性能の高いCPUコアと大量のL3キャッシュを載せた、大きなダイ(半導体本体)のチップだった。しかし、現在、この“常識”は急速に崩れつつある。

 サーバーハードウェアに変化が起きたのは、伝統的なサーバーワークロードではないワークロードが急拡大し始めたからだ。いわゆるビッグデータの波が押し寄せつつあり、クラウドに頼るモバイルユーザーが急増し、今後はIoT(The Internet of Things)によってさらにデータ爆発が起きると見込まれている。下は、こうした変化を説明するHP(Hewlett-Packard)のマイクロサーバーのプレゼンテーションだ。HPのビジョンとAMD(SeaMicro)のビジョンはかなりオーバーラップしており、AMDがHPのようなサーバーベンダーの動きに応じていることがわかる。

HPのマイクロサーバーのプレゼン。IoTによるデータが増大していく

 従来のサーバーCPUは、負荷が高く複雑で相互に依存した問題が限られた数存在するワークロードが主流という前提で開発されていた。そのため、シングルストリームのワークロードのボトルネックを回避するために、CPUメーカーはシングルスレッド性能の高いCPUをサーバー向けに開発してきた。また、メモリアクセスとCPUソケット間のスヌープトラフィックを軽減するために、キャッシュのサイズも非常に大きくした。

 だが、ネットワークの普及とともに、データセンターのワークロードは変わって来た。少数の複雑な問題ではなく、小さくシンプルで独立した問題が膨大な数溢れる状態になった。そうした膨大な小ワークロードの場合、I/Oやメモリがボトルネックとなり、従来のサーバーCPUやサーバーシステムはうまく適合しない。従来のサーバーCPUでも処理できるが、膨大な電力のムダが生じてしまう。下は、AMDが買収したサーバーチップベンチャのSeaMicroの2年前のプレゼンテーションで、こうした変化がが明瞭に示されている。

データセンターのワークロードが変化
クラウドのキラーアプリケーション

 見方によっては、現在進んでいるのはクライアント側からサーバー側へのコンピュートの移行だ。PC時代にクライアント側でやっていたような処理は、モバイル時代にはサーバー側へと移行している。そのため、サーバー側にも、これまでとは異なるワークロードへの対応が求められる。

3つのサーバーCPUラインを並列させるAMD

データセンターにも電力問題が発生
AMDの2013~2014年Opteronロードマップ

 AMDがサーバーにAPUとスモールCPUコアを投入しようとしているのは、こうした背景があるからだ。従来のシングルスレッド性能にフォーカスしたCPUコアだけのサーバーCPUは、現状や今後のデータセンターには適さないと見ている。特に、電力効率を考えると、伝統的サーバーCPUは、ビッグデータ処理に適さないという。データセンターは、すでに電力の上限に達してしまっており、その枠内で増えるデータを処理するためには、電力効率を高める必要がある。スーパーコンピュータやモバイルクライアントで起きた問題が、普通のデータセンターでも発生している。

 もちろん、今後も従来型のサーバーCPUが必要な分野は存在するが、新サーバーCPUの分野が成長して行くとAMDは考えている。そのため、従来型サーバーCPU、APU、スモールコアCPUの3ラインを並列させる。2014年で言えば、従来型が「Warsaw(ワルシャワ)」、APUが「Berlin(ベルリン)」、スモールCPUコアが「Seattle(シアトル)」となる。APUはもちろんHPC(High Performance Computing)分野も最終的にはカバーするようになるだろう。

 APUとスモールCPUコアというAMDの新サーバー戦略だが、2つの路線には勢いに違いがある。スモールコアサーバーCPUは、AMDだけでなく、多くのチップ企業が殺到する大潮流になっている。それに対してAPU的なサーバーソリューションは、HPC(High Performance Computing)分野を除けば、それほど声が高まっていない。その背景には、適用できるワークロード、参入できるメーカー数、プログラミングフレームワークの成熟度、GPU自体の汎用化の達成度、など多くの要因がある。しかし、長期的に見れば、GPUコアがデータセンターにも部分的に浸透して来る可能性はある。NVIDIAも、本音では全てのデータセンターにGPUを浸透させたいはずだ。

MapReduceの分散化やB+ treeのサーチでのAPUの優位性

 AMDは11月に開催した開発者向けカンファレンス「AMD Developer Summit(APU13)」で、サーバー新戦略のうちAPUに関する部分の説明を行なった。既定路線であるARMスモールコアサーバーは置いておいて、APUサーバー側の展望をキーノートスピーチで行なった。HSAの担当者であるPhil Rogers氏(AMD Corporate Fellow)が行なった「The Programmers Guide to Reaching for the Cloud」と題したキーノートスピーチで、その冒頭、AMDはサーバーワークロードの変化がAPUのサーバーへの浸透を後押しすると説明している。AMDの場合、クライアント側にはすでにAPUがあるので、サーバーとクライアント両側にAPUが必要という論旨だが、目的はサーバーにAPUを入れることにある。

クラウドのワークロードはヘテロジニアスへ
センサー類のネットワークが急速に成長

 この説明の中で、AMDはGoogleのMapReduceのような分散処理フレームワークは、ヘテロジニアスなワークロードでAPUに適しているとしている。同じような趣旨は、NVIDIAも自社の技術カンファレンスGTC(GPU Technology Conference)で触れていた。また、IoTがIoE(The Internet of Everythings)にまで広がって行くと、ネットのデータ量は指数関数的に増えて行くと指摘している。だから、ヘテロジニアスなプロセッサがコンピューティングの全スペクトラムで必要となり、そこにスケーラブルなアーキテクチャが必要だというのがAMDの主張のポイントだ。

 より具体的な例として、AMDはMapReduceをベースにしたHadoop(最新版のHadoopではMapReduce以外の分散処理フレームワークも実行可能)での大量データのソートやビッグデータサーチで、APUが有用であると示した。

ヘテロジニアスのプロセッサが全分野へ
ビッグデータサーチにAPUが有用

 このほか、B+ treeのツリー構造の階層インデックスでのサーチもAPUでアクセラレーションが可能だと説明した。AMDによるとB+ treeではCPUとGPU間のメモリ空間のデータコピーが不要となるHSA APUの利点を活かすことで、CPU単体やCPU+ディスクリートGPUのソリューションよりも大幅にパフォーマンスアップを図ることができると言う。

B+ treeの概要
B+ treeを使うアプリケーション
APUで高速化
Kaveriで実行した結果
B+ treeの検索アクセラレータ
AMDのソリューションはAPU

 サーバーへのAPUの浸透の鍵となるのは、HSAのプログラミングモデルだ。特に重要となるのはJavaをHSAに統合させることで、これが今回のAMDのカンファレンスの重要トピックの1つだった。現在は、AMDはJavaからAPARAPIを通じてOpenCLに落とし込み、GPUで走らせている。これを最終的には「Sumatra(スマトラ)」プロジェクトでJava VMからHSAの中間言語「HSAIL」をジェネレートする。

JavaのバージョンとHSAの統合
APARAPIの役割
Sumatraプロジェクト
SumatraプロジェクトでGPUオフロード
Sumatraプロトタイプのダイヤグラム

まだ準備が完全ではないAPUサーバー

 AMD Developer Summit(APU13)でのAMDのAPUサーバーの説明は、まだイントロダクションに過ぎず、きちんとわかりやすく全体の展望も示していない。また、歯切れが悪い部分も多い。もちろん、それは、AMD自身の準備が整っていないからだ。

 まず、ハードウェア面では、AMD自身が、サーバーに特化したAPUを投入する準備ができていない。現状では、メインストリームPC向けのAPUをサーバーに転用しており、2014年のBerlinも、Kaveriと同ダイになると見られる。また、APUのGPUコアも、まだプリエンプティブなコンテクストスイッチができないといった問題を抱えている。そのため、GPUでは仮想化を、グラフィックスレンダリング以外のコンピュートタスク汎用には広げることができていない。

GPU仮想化の次のステップ
PDF版はこちら

 HSAのロードマップは、AMDが2014年頭に市場に出すAPU Kaveriで、ようやく下のスライドの3段階目を達成する。言ってみれば75%の完成度で、最後のステップの技術的な要素が揃うのは2014年末になる見込みだ。それまではステップバイステップでAPUをサーバーへと浸透させて行くことになる。

ヘテロジニアスシステムアーキテクチャのロードマップ
APUをクライアントからクラウドへ

 AMDがサーバーの変革の波に乗ろうとしているように、Intelもサーバーでの変革を進めている。IntelのラインナップでAMDのAPUに当たるのは次期MIC(マイク:Many Integrated Core)アーキテクチャの「Knights Landing」、AMDのARM CPUコアサーバーに当たるのは「Avoton(アヴォトン)」以降のAtom系CPUコアのサーバーCPU。AMD戦略との違いは明瞭で、Intelがx86を拡張した高スループットコアを使うのに対して、AMDはGPUコア。Intelがx86命令セットのスモールCPUコアを使うのに対して、AMDはARMコアとなる。

 以前は、AMDはx86の世界でIntelに対抗しようとしていた。しかし、現在のAMDは明らかに戦略を転換している。対Intel軸の側の技術に寄っており、Intel以外のチップ業界で盛り上がっている技術に乗る、あるいは先導する方針を採っている。

 NVIDIAも、目立たないながらもCUDAフレームワークを着実に進化させている。NVIDIAの次のステップは当然CPUコアの統合で、64-bit ARMv8のDenver(デンバー)コアを統合してAMD用語でのAPU化を実現する。

 現在のサーバーでの争点は、AMDやHPなどが説明しているような、伝統的サーバーCPUでうまく行かないワークロードがどれだけ拡大するかという点にある。この話が持ち上がり始めた当初は、かなり懐疑的な声が多かった。しかし、現在は、かなり楽観的な見通しを語る業界人が増え始めている。中には、伝統的サーバーCPUは恐竜のように取り残されると言う過激派もいる。だが、実際に、2020年までにどういった棲み分けになるのかは、まだ見えていない。

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