仮想化道場
プラットフォームに変革をもたらす次の時代のサーバープロセッサ
(2015/8/14 06:00)
IntelがFPGA大手のAlteraを167億ドル(約2兆円)で買収すると6月2日に発表を行った。また、AMDも5月にFinancial Analyst Dayを5月に開催し、2016年のプロセッサを明らかにした。
両社の発表は、全く関連はない。しかし、半導体製造プロセス技術への行き詰まりが見え始めている現状において、サーバープロセッサで新しいブレークスルーを生み出そうとしているように感じる。
今回は2015年後半から2016年以降のサーバープロセッサがどうなっていくのかを解き明かしていきたい。
迷走するAMD
サーバープロセッサ分野でシェアを落とし続けているAMDだが、5月に開催されたFinancial Analyst Dayにおいて、2015年後半から2016年以降のサーバープロセッサのロードマップが公開された。
AMDは、ここ数年間ソニーのゲーム機PS4向けのAPU、Microsoftのゲーム機XBOX Oneの向けのAPUを提供するなど、セミカスタムチップの提供に力を注いでいた。しかし、家庭用ゲーム機向けのセミカスタムチップは需要が一巡し、今後は大幅な増加は見込めない。また、新しいVirtual Reality(VR)、Augmented Reality(AR)向けのAPUなども大きな市場になるかどうかは、まだまだ未知数の部分が大きい。そこで、AMDでは影響力を落としていたエンタープライズ分野への回帰を発表した。
AMDのAPUは、HPのMoonshotなどでVDI向けのプロセッサとして採用されていた。これは、APUにCPUと強力なGPUが搭載されていることが大きな理由だった。しかし、サーバー用のメインプロセッサとしては、市場のほとんどをIntelのXeonが席巻し、AMDのOpteronのブランドはほとんど見なくなっている。
またGPGPU分野では、x64 CPUとGPUを統合したAPUを利用したソリューションや単体GPUのFireProなどもリリースされているが、NVIDIAと比べると開発環境(CUDA)などで大きなひらきがある。実際スーパーコンピュータでは、NVIDIAのQuadraなどが使われていることが多い。
AMDは、2012年にMicroServerのベンダーSeaMicroを買収したが、結局MicroServerという分野が、AMDが期待するほど市場が広がらなかったため、今回のFinancial Analyst Dayにおいて、売却を発表している。
SeaMicroがMicroServer向けに開発したファブリックチップの機能を、AMDが開発した64ビットARMプロセッサ(Opteron A1100)に搭載する計画だったが、実際にプロセッサがリリースされた際にはファブリックチップの機能は入っておらず、10GbEを内蔵した64ビットARMプロセッサにすぎなかった。結局Opteron A1100は、64ビットARMプロセッサのサンプルとしての域から出ず、サーバーベンダーへの採用はほとんどなかったようだ。
ARMプロセッサを採用するMicroServerに関しては、数年前は大きく取り上げられたが、現状ではほとんど普及していない状況だ。これは、IntelがAtomプロセッサ、Broadwellプロセッサなどで、大幅に消費電力を低減してきたということもあるが、パブリッククラウドの普及により、MicroServerとして自社でサーバーを導入するよりも、クラウドを利用すればいい、と考える企業が増えたためだろう。
クラウド事業者では、サーバーベンダーが作るMicroServerではなく、Facebookなどのサービスベンダーが規格化したOpen Compute Project(OCP)が中心になってきている。サービスベンダーやクラウドベンダーなどは、自社が規定したOCPベースのサーバーをODMやサーバーベンダーに開発してもらい、大量のサーバーやストレージを低価格で導入している。
ZenとK12に賭けるAMD
AMDは、このようなサーバー市場の変化に追従するために、新しくx64アーキテクチャのプロセッサ「Zen」の開発を発表した。
以前からAMDが新しいx64アーキテクチャのプロセッサを開発していると言われていたが、開発コード名などが発表されたのは今回のFinancial Analyst Dayが初めてだ。
現在、AMDがミッドレンジ以上のプロセッサで採用しているBulldozerアーキテクチャは、リリース前は斬新なアーキテクチャとして注目を浴びた。これは、RISCプロセッサと同じように命令をシンプルにして動作クロックを上げ、パフォーマンスアップしていこうというモノだ。
しかし、実際にプロセッサがリリースされると、半導体製造を外部のファウンドリーに頼っているため、当初考えられたほど動作クロックが上げられず(消費電力と発熱により)、市場の評判もそれほど高くなかった。チューニングを重ねて、2015年にはExcavatorコアになるが、それでも大幅にパフォーマンスをアップするほどではなかった。
そこで計画されたのが、Bulldozerアーキテクチャとは全く違ったアーキテクチャ、Zenアーキテクチャを採用したx64プロセッサだ。
Zenアーキテクチャの詳細に関しては、今回のFinancial Analyst Dayでは公開されなかったが、Bulldozer系コアよりもシングルスレッドの性能をアップすることを目的に開発されている(Excavatorコアを採用した2015年のAPU「Carrizo」よりも40%近く命令実行性能がアップする予定)。また、1つのコアを仮想的に複数のコアとして利用できるSMT(Simultaneous Multi Threading)を採用する(IntelのXeon、Oracle SPARC、IBM Powerなどでも採用している)。
もう1つ、Zenではキャッシュメモリの階層化を行いパフォーマンスをアップするとしている。6月にGPUにHBM(High Bandwidth Memory)メモリを採用したRadeon R9がリリースされている。CPUもGPUと同じようにHBMメモリを採用する可能性が高い。
【8/14 追記】
直前のZenに関する記載について、一部表記を初出時よりあらためました。
HBMでは、GPUをドータボード(パッケージ基板)に置き、その周りにHBMを配置する。HBMは、GPUの距離が近く、高いクロックでの動作ができる。また、バンド幅も1024ビットにまで拡張されている。なによりも特徴的なのが、HBM内部に結線用のインターポーザーを作ることで、メモリを3Dにスタッキングすることができる。これにより、大容量の高速メモリをGPUが利用できるようになる。このHBMをZenプロセッサのキャッシュメモリとして使用しようと考えているのだろう。
Zenが搭載するコア数などは明らかにされていないが、16コア/32スレッドをサポートすると言われている。また、以前のOpteronと同じようにMCM(Multi Chip Module)を使用して、32コア/64スレッドの製品も用意されると予測されている。
AMDでは、x64プロセッサ以外に、自社で独自に開発する新しい64ビットARMプロセッサのK12も用意している。K12に関しては、Zenで採用されたテクノロジーなどを再利用することになるだろう。
Zenに関しては2016年後半のリリース、K12に関しては2017年のリリースがターゲットになっている。
以前のFinancial Analyst Dayでは、64ビットARMプロセッサK12とx64プロセッサのソケット互換を行う「SkyBridge」が発表されていたが、今回のFinancial Analyst Dayで正式にプロジェクトのキャンセルが発表された。これは、SkyBridgeを発表したが、多くの顧客の賛同を得られなかったということが実情だろう。このため、K12とZenは、異なるソケットで提供されることになる。
AMDのFinancial Analyst Dayでの発表を見ていると、確かにZenプロセッサなどは期待されるが、実際にエンタープライズ分野において大きな市場を得られるのか不透明だ。Zenプロセッサの性能次第ということもあるが、IntelのXeonプロセッサが大きな市場を占めてしまっている状況をひっくり返すのは、並大抵のことではない。
ただ、今後オンプレミスサーバーからパブリッククラウドへの移行が積極的に行われるようになれば、企業においてはサーバーのハードウェアは関係なくなり、パブリッククラウドのブランド、信頼性といったことが重視されるようになる。
Zenプロセッサがコストパフォーマンスに優れているなら、クラウド事業者においては、パーツとして選択肢の1つになってくるかもしれない。Intelも簡単には、エンタープライズ市場を明け渡すとは考えられないため、パフォーマンス面、コスト面でもIntelを大きく引き離す必要があるだろう。こういった状況をみると、Zenプロセッサがエンタープライズ市場に普及していくには相当に高いハードルがあると、筆者は考えている。
さらにAMDでは、APUをハイパフォーマンスコンピューティング(HPC)向けにチューニングしたExascale Heterogeneous Processorを計画している。このプロセッサは、既存のAPUとデザインは同じだが、高速なメモリHBMを搭載することで、GPGPUのパフォーマンス大幅にアップしようと考えている。
ただし現状、GPGPUのアプリケーションとしては、NVIDIAのCUDAベースのソフトウェアが数多くリリースされている。一般企業がHPCベースのコンピュータを研究や開発に利用していくためには、やはりアプリケーションがそろっている必要がある。このあたりをAMDが乗り越えられるかがカギになるだろう。
プロセス技術で他を圧倒するIntel
Intelでは、Broadwellアーキテクチャのワークステーション/サーバー向けの1ソケットプロセッサを6月に発表した。今回発表したXeon E3-1200 v4シリーズは、デスクトップ向けに発表された第5世代のCore i7/Core i5を、ワークステーション/サーバー向けにリリースしたものだ。
1ソケットプロセッサということで、データセンターやオンプレミスのサーバーなどで2ソケット、4ソケットの製品が期待されている。
ただ、デスクトップ向けプロセッサにおいては、Broadwellアーキテクチャの次世代となるSkylakeが8月にリリースされた。このため、サーバー向けの2ソケットBroadwellプロセッサがリリースされるかどうかは、未定だ。
Broadwellアーキテクチャ自体は、低消費電力化を目的にしているので、それほど動作クロックはアップしていない。製造プロセスは14nmになっているが、当初大きなトラブルがあったようで、順調な立ち上がりとは言えなかった。このため、ノート、デスクトップ向けのプロセッサとして、幅広いラインアップを同じタイミングでそろえることができずに、時期をずらしてバラバラとした発表となったようだ。
多数のCPUコアを必要とするサーバープロセッサにおいては、低消費電力化は大きなメリットになる。しかし、製造プロセスが順調に立ち上がっていないことを考えれば、もしかすると2ソケットのBroadwellプロセッサは、スキップされる可能性もある。このあたりは、サーバー向けのSkylakeプロセッサが順調に開発されているかということにもよる。
サーバーを導入する企業としては、半年から1年で全く新しいアーキテクチャのプロセッサが出てくるのでは、導入スケジュールを立てづらい。Intelとしても、半年で新しいアーキテクチャのサーバープロセッサをリリースするのは、サーバーベンダーや顧客の賛同を得にくいだろう。なによりもIntel自身にとって、2ソケットのBroadwellプロセッサをリリースしても短命に終わるのでは、コストや利益面でのデメリットになる。
サーバー向けの2ソケットSkylakeプロセッサの開発が順調ならば、2015年は新しいサーバープロセッサをリリースせずに、2016年にSkylakeベースのプロセッサを発表すればいい。もし、サーバー向けのSkylakeプロセッサが遅れるようなら、サーバー向けのBroadwellプロセッサをリリースして、サーバー向けのSkylakeプロセッサを2017年もしくは、2018年にスリップさせればいいと考えているのかもしれない。このあたりは、秋に開催されるIntelの開発者フォーラムIDFで明らかにされるだろう。
現状では、2ソケットのBroadwellプロセッサは、HaswellアーキテクチャのXeon E5 2600 v3シリーズと同じLGA2011 v3が使われると言われている。このため、Haswellベースのサーバーは、Broadwellプロセッサに入れ替えるだけで、新製品としてリリースできるため、サーバーベンダーの開発負荷は少なくて済む。
しかし、Skylake世代では全く新しいソケットになるようだ。Skylake世代ではプロセッサに、InfiniBandを拡張した100Gbpsの光ファイバー結線のファブリックインターフェイス(Omni-Path Fabric)を内蔵し、ラック内部のネットワークを高速化する計画がある。Omni-Path Fabricインターフェイスは、次世代のXeon PhiのKnights Landing(開発コード名)でも採用されるようだ。Omni-Pathは、100Gbpsから始まるが、最終的には1Tbpsを目指している。
IntelがInfiniBandではなく、独自のOmni-Path Fabricを開発した経緯としては、InfiniBandの開発を先導しているMallenox(メラノックス)との規格争いという面もありそうだ。InfiniBand製品を提供していたQLogicを買収したIntelとしては、自社が考える機能をInfiniBandに取り入れるよう、にInfiniBandの規格を策定しているInfiniBand Trade Associationに提案したが、うまく折り合いがつけられなかったようで、Omni-Pathという規格を作ったようだ。
Intelは、1990年代にNGIOという新しいファブリックインターフェイスの開発を行っていた。しかし、Compaq、HP、IBMがNGIOに対抗するFuture I/Oを提唱し、その後、両グループは和解して、InfiniBandとして規格化されることになった。Intelは数年間は、InfiniBandへの開発投資を行っていたが、結局市場の成長が望めないとして2002年には、事業の中止を決めた。
しかし、InfiniBandがHPC分野で利用されるようになり、最近ではストレージネットワークとして利用され始めたことを見て、QLogicを2012年に買収し、再度InfiniBandに参入することになった。
このような流れがあるため、InfiniBandの規格においては、Intelが主導権をとれず、Omni-PathのようなInfiniBandをベースとした新規格を作ることになったのだろう。もしかすると、将来的にはMallenoxと和解して、新たなInfiniBand規格として提供される可能性もある。当面は、Omni-PathとInfiniBandは併存していくことになる。
どちらにしろ、今後、Software Defined Data Center(SDDC)などを実現していくためには、高速なファブリックインターフェイスは欠かすことはできないものだ。
もう1つIntelにおいて注目されるトピックとしては、FPGAのAlteraの買収だろう。Alteraに関しては、昨年から買収の交渉を行っていたと言われていた。しかし、2015年に入り、交渉は破談に終わったとされていたが、IntelはどうしてもAlteraがほしかったため、敵対買収を仕掛けても買収するつもりだったようだ。
FPGAは、大ざっぱに説明すれば、CPUなどとは異なり、ユーザーがプログラマブルに回路を設計できるチップだ。このため、ユーザーがさまざまな機能をハード化することができる。
当初FPGAは、ASICなどの動作設計のために使われるチップだったが、最近ではFPGAの動作スピードやトランジスタ数が大幅にアップしたことで、ASIC化するほど大量のチップを必要としないカスタムチップとして利用されることが多い。例えば、エンタープライズ向けのPCI ExpressベースのSSDなどのフラッシュメモリのコントローラなどにも利用されている。
さらに、FPGAは、GPGPUなどと同じように特定の機能を高速化するソフトウェア アクセラレータとして使用されるようになってきた。Microsoftでは、FPGAをBing検索のページランク処理などに使用されるようになり、ソフトウェアで処理していたときに2倍のスループットを実現している。これにより、ページランク処理にかかわるサーバーの数を大幅に削減することが可能になった。
Microsoftの事例は、学会で発表されたため注目されたが、Facebook、Googleなど多くのクラウドサービス企業がFPGAを使用してきている。
そこで、IntelではXeonにFPGAを融合させるために、Alteraを買収したといえる。今後、IoTの世界が現実化してきたときに、膨大なデータを処理するためには、CPUだけでなく、ハードウェアをプログラミングできるFPGAが重要になってくるのだろう。
実際にFPGAを搭載したXeonは、割と早めにリリースされるだろう。Alteraの買収とは別に、Alteraと協力してXeonにFPGAを搭載するプロジェクトが昨年から行われていたため、早ければ今年終盤、2016年にはリリースされるのではないか。
ただ、FPGAを搭載したXeonをリリースしたとしても、このプロセッサを生かしきる企業は全世界でも数十社だろう。幅広い企業に利用されるためには、FPGAを使った、開発環境やさまざまな機能をハードウェア化したサンプルなどが必要になってくる。このため、当初のFPGA搭載Xeonは、クラウドサービスを提供しているビッグカスタマーなどに限定的に提供され、数多くのライブラリがそろった段階で多くの顧客への提供になるだろう。
実はOmni-Pathは、FPGA搭載Xeonを生かすためにも必要になっているようだ。Bingの事例でも複数のFPGAと複数のCPUを接続する高速なネットワークの必要性が言われているため、そういった用途にも光ファイバーベースのOmniーPathが必要になっているのだろう。
******
Intelの動向を見ていると、AMDにとっては分が悪い勝負に挑んでいるように感じる。ただ、Intelにとっても、新しい製造プロセスの開発に膨大なコストがかかるようになり、今までのようにひんぱんに製造プロセスを更新しにくくなってきている。また、新しい製造プロセスの立ち上がりの不安定さも、大きな問題になっている。
Intelのロードマップでは、現在Broadwellプロセッサを製造している14nm、次の10nmまでは見えている(10nmは14nmの改良で行えるようだ)。また、研究段階では7nmの製造プロセスも可能と発表している。だたし、14nmのように、実際にプロダクトとして使用すると、量産の立ち上がりが悪く、安定するまで苦労する、ということになるかもしれない。
Intelとしては、単に製造プロセスだけに頼るのではなく、サーバープロセッサとして必要とされる新たな機能を取り込むことで、製造プロセスの微細化が順調にいかなくても、プロセッサを進化していけるように考えているのだろう。
全体を見渡すと、半導体の製造プロセスの微細化が限界に近づいていると思われる。Intelなどは、巨額の開発費をかけて、10nmや7nmなどのプロセス開発を進めているが、量産時が何時になるかわからない。また、巨額な開発費や製造費用に見合うだけの需要があるのかなどさまざまな問題が出てくる。
サーバープロセッサも、IBMのPowerアーキテクチャ、OracleのSPARCのように、1つのコアが処理するスレッド数を増やしていくことになるかもしれない。ただ、x86/x64のアーキテクチャでは、1つのコアで4スレッドを実行していくデザインは難しいかもしれない。このあたりは、新たな仕掛けが必要になっていくだろう。
もう1つは、OracleのSPARCなどで採用されているように、データベースなど、エンタープライズで必要アプリケーションを高速化する命令をハードウェア化していくことだ(ソフトウェア・イン・シリコン)。IntelがFPGAのAlteraを買収したのは、こういった流れを作り出そうとしているのかもしれない。
最後に、エンタープライズ向けのサーバーが大きく変革する可能性があるのは、メモリの進化だろう。現在、メインメモリにDRAMを使用しているが、プロセッサの内部動作スピードとDRAMとのスピードの差が大きく乖離(かいり)してきている。これを埋めるためには、HBMなどの高速メモリをメインメモリの間に置くことで、メモリの階層化を進める必要がある。
また、メインメモリはDRAMから、高速な不揮発性メモリに置き換わっていくだろう。実際、Intelが7月末に発表した3D XPointなどの新しい不揮発メモリなどを使えば、すべてのデータをオンメモリに置いた、超高速のデータベースシステムやビッグデータ解析のシステムが構築できる。ここまでくると、プロセッサはリニアに数PBのメモリにアクセスできるようになり、データやプログラムを保存するHDDなど外部記憶装置はなくなるかもしれない。
サーバーにとって、大きな変革は、2020年ごろが1つのターゲットになるだろう。