仮想化道場

ARMアーキテクチャのサーバープロセッサは、つぼみのまま枯れてしまうのか?

 ARMは、64ビットARMアーキテクチャのAArch64を発表し、Cortex-A35/53、Cortex-A57/72/A73といったプロセッサデザインを提供している。

 多くの64ビットARMプロセッサがスマートフォンなどで採用されるようになり、最新のスマートフォンでは、逆に64ビットARMプロセッサがあたりまえになってきた。

 では、サーバープロセッサ用途としてはどうなのだろうか?

ARMサーバーを取り巻く状況

 かつては、特に省電力の面から期待が高かったARMサーバーだが、状況はあまり良くない。2013年末には、ARMサーバー向けのプロセッサを開発していたCalxedaが事業を停止した。また、2015年ごろには、多くのARMサーバーが低消費電力サーバーとしてパブリッククラウドで利用されるのではと言われていたが、現状はARMサーバーをクラウドで提供しているベンダーはほとんどない。

 AMDでは、ARMベースのサーバープロセッサK12(開発コード名)を開発していると発表していたが、最近ではまったく話を聞かなくなった。一応ロードマップ上は存在している。リリースに関しては、筆者は2017年中は厳しいと考えている。AMDにとっては、2017年はZenアーキテクチャのプロセッサに集中する年となるため、K12がリリースされるのは早くても2018年になるだろう。

現状では、AMDはARMのサーバープロセッサの開発を継続しているようだ。ただ、単に64ビットARMコアというだけでは、普及しないだろう。やはり、AMDのGPUと合わせて、人工知能などの処理を高速化するようにしないと採用は増えないだろう(出典:AMDのWebサイトより)

 AMDでは、2016年1月にARMの64ビットコア「Cortex-A57」を採用したARMプロセッサOpteron A1100を発表したが、このプロセッサを採用したサーバーはサーバーベンダーから発売されることはなかった。実際には、サンプル出荷に近い状態だったようだ。

2016年にARMサーバープロセッサをOpteronブランドで発表したが、このプロセッサを採用したサーバーはほとんどなかった(出典:AMDのWebサイトより)。

 現実の製品としては、Applied MicroがX-Geneというサーバープロセッサをリリースしているほか、BroadcomでもARMサーバープロセッサを提供していたが、2015年にAvago Technologiesに買収された後は、新しいARMサーバープロセッサはリリースしていない。

 これら以外では、Caviumなど、いくつかの企業がARMサーバープロセッサを提供しているが、多いとはいえない状況だ。

 このように停滞していたARMサーバープロセッサだが、2016年末にQualcommが、10nmプロセスで製造したARMサーバープロセッサ「Centriq2400」を発表した。現在、サンプル出荷中で、開発はQualcommのサーバープロセッサ開発を行っているQualcomm Datacenter Technologiesが行った。

 プロセッサの詳細は、2017年3月に開催されるコンファレンス「Open Compute Project」で発表されるようだ。

Qualcommが発表した64ビットサーバープロセッサ「Centriq2400」。コア数は最大48個となっている。Centriq2400は、ARMv8をベースにQualcommが改良した「Falkor」コアを使用している(出典:QualcommのWebサイトより)

 またプロセッサそのものではなく、ARMサーバー関連のニュースとしては、ARMを買収したソフトバンクが2016年12月に、米国のクラウド事業者Packet Hostが提供しているベアメタルのARMサーバーを、日本国内のデータセンターで提供すると発表している。

 Packet HostのベアメタルARMサーバーは、CaviumのThunderX(1プロセッサあたり48物理コア、2GHz)×2プロセッサという構成だ。

OSはLinuxが先行中

 OSに関しては、LinuxがARMプロセッサをサポートしていたが、各社のディストリビューションとしてはARM版Linuxは提供されていなかった。

 しかし、Linux 4.9においてARMサポートが強化されたことで、SUSEがARM Linuxのディストリビューションを2016年11月に提供開始した(SUSE Linux Enterprise Server for ARM)。

 またRed Hatにおいても、ARM版Red Hat Enterprise Linux(RHEL)の開発者向けプレビューの提供が始まっているし、Ubuntu、CoreOS、CentOS、FreeBSDなどでも徐々に対応版がリリースされはじめている。

 ハイパーバイザーに関しては、XenやKVMなどがARMアーキテクチャ向けに開発されている。

 一方でMicrosoftでは、ARM版のフル機能Windows 10を2017年後半にリリースする予定と発表しているが、Windows Serverに関してはARM版のリリースを発表はしていない。しかし、OSのコア部分はWindows 10とWindows Server 2016で同じものが使用されているため、市場が整えば、Windows ServerでもARM版がリリースされるかもしれない。

 もし、ARM版Windows Server OSがリリースされるとするなら、2018年~2019年になるだろう。

*****

 ARMサーバーに関しては、2017年に一気に普及するとはいいがたい状況ではあるが、このように、それなりに環境は整い始めているようだ。

 当初考えていたように、x86/x64サーバーが大幅に置き換えられるという状況にはならなかったが、第1世代のARMサーバープロセッサが、低消費電力ではあるものの、それほどの性能を示せなかったことが大きな要因だ。また、x86/x64プロセッサ側が、性能を維持しながら低消費電力化を目指したことも一つの要因とされている。

 今後、第2世代のARMサーバープロセッサがリリースされることで、性能の上昇も見込めるし、OSやミドルウェアなどもARMプロセッサ対応が進んできている。

 ただ、データセンターの状況を考えてみると、ARMサーバーは単にx86/x64サーバーの置き換えではなく、インターネットのフロントとなるWebサーバーなど限定的な使われ方をするだろうと考えている。

 もしかすると、単なるIaaSのインフラとして提供されるのではなく、AWSのLambdaやAzureのAzure Functionsなどの、サーバーレスシステムで利用されるようになるかもしれない。

 なお、一般的なサーバーとは異なる領域では、スーパーコンピュータの「京」の後継機が2022年ごろをターゲットして開発されている。京の後継機は、7nmプロセスのARMプロセッサを使用するようだ(開発は富士通)。パフォーマンスとしては、1秒あたり1エクサフロップス(Exa=京の100倍)の処理に挑戦する。

 京の後継機は、高パフォーマンスよりも、処理性能と消費電力のバランスが取れたシステムになる(京の100倍以上の性能を実現し、消費電力は京の3~4倍)。

 もしかすると、京の後継機が稼働する2020年ごろには、クラウドでもARMサーバーが積極的に利用されているかもしれない。

ポスト京は、2020年(平成32年)をターゲットにしているが、プロセッサの製造に7nmプロセスを使用するため、当初計画から2~3年完成が遅れるといわれている(画像出典:理化学研究所 計算科学研究機構 Webサイトより)

HPEの次世代サーバー「The Machine」

 ARMサーバー関連のトピックとして筆者がもう一つ注目しているのが、Hewlett Packard Enterprise(HPE)が2020年の完成を目指して開発を行っている「The Machine」だ。

 The Machineは、現在のDRAMではなく、不揮発性メモリ(高速なフラッシュメモリなど)をメインメモリにして、SoC化したプロセッサを多数接続する。メモリとプロセッサの接続には、高速なフォトニクスネットワークが使用されるが、プロセッサは、ARMベースのSoCをHPEで開発して使用しているようだ。

 The Machineの最大の特徴は、膨大な容量の不揮発メモリをメインメモリとして使用し、大量のプロセッサを搭載することで、オンメモリですべての処理を行おうというモノだ。つまり、HDDなどのストレージを使用せずに、すべてのデータやアプリケーションをメインメモリ上に展開して、動作させることを目指している(実際にシステムが提供される時には、バックアップのためにHDDなどのストレージが使用される可能もある)。

 2016年11月に開催されたHPEのイベント「Discover 2016 London」において、The Machineアーキテクチャの実証機が動作したと発表した。現状では、各種テストなどを行い、2020年を目指してサーバーの開発が進んでいる。実際には、The Machineの実証機で採用されたテクノロジーは、高価であったり、開発途上のテクノロジーがあったりするため、まだまだ開発途上に近い状態だ。

 ただ、いくつかのテクノロジーに関しては、現状のサーバーへフィードバックしていくとしている。

HPEが2020年に完成させようとしている新しいサーバーのコンセプトがThe Machine(出典:Linux ConferenceにおけるHPEの解説資料より)
The Machineは、大量の不揮発メモリを搭載することで、HDDなどのストレージを使わずに、データをすべてオンメモリ上に搭載して処理する(出典:Linux ConferenceにおけるHPEの解説資料より)
プロセッサはSoC化され、フォトニックインターフェイスで大量の不揮発メモリと接続される(出典:Linux ConferenceにおけるHPEの解説資料より)
プロセッサとしては、ARMのカスタムSoCが使用されるようだ(出典:Linux ConferenceにおけるHPEの解説資料より)
OSとしては、The Machine用に開発されたLinuxが利用されている(出典:Linux ConferenceにおけるHPEの解説資料より)
2016年11月に、The Machineの実証機が稼働した。今後は、OSの開発やアプリケーションの開発などが進んでいく。一部のテクノロジーは、現在のサーバーにフィードバックされる(HPEのThe Machine紹介ビデオより)

これからのサーバー向けプロセッサはクラウド事業者がリードする?

 なおARMサーバーではないが、Googleにおいても、x86/x64アーキテクチャではないサーバープロセッサをクラウドで利用しようと、開発を進めている。ベースはIBMのPOWER9で、このサーバーはGoogle自体が開発を行っている。

 またGoogleは、ディープラーニング用にTPU(Tensor Processing Unit)を開発している。TPUは、Googleが開発したディープラーニング用のアプリケーションTensorFlowが高速に動作するよう、独自にチューニングしたコプロセッサだ。

 Googleは、現在のプロセッサやメモリなどを使ったサーバーの行き詰まりを懸念しているため、Google自身で新たなプロセッサ、メモリ、インターコネクト、ネットワークを使ったクラウド向けサーバーの開発を考えているようだ。

 こうした新しいサーバーでは、Google自身が一からプロセッサを開発する可能性もあるが、まったく新しいアーキテクチャのプロセッサを開発するというよりも、既存のx86/x64やARM、Powerなどのプロセッサアーキテクチャを改良し、Googleの目的にマッチしたサーバーを開発していくというモノだろう。

 つまり、半導体メーカーが提供しているプロセッサをそのまま使うのではなく、自社の目的に合うように、命令セットを拡張するようなカスタムプロセッサを作り上げようとしているのではないか。

 もう一つ、今後コンピューティングで重要になってくる人工知能(AI)などの開発に関して、現状のx86/x64プロセッサでは限界があるため、人工知能にフォーカスしたプロセッサやGPGPUの開発が重要視されている。

 Googleなどの大規模なクラウド事業者なら、ある程度コストをかけて専用プロセッサを開発しても、開発・製造コストは吸収できるだろう。

 もしかすると、大量のサーバーを使用しているGoogle、Facebook、Azure、AWSなどが、クラウド向けのプロセッサやメモリ、ストレージの規格などを決めれば、サーバー市場は大きく変わるかもしれない。

 現状においても、サーバーやメモリ、ストレージ、ネットワークなどの導入先の多くはこれらのクラウド事業者なのだから。

 今後は、Intelなどの半導体ベンダーではなく、クラウド事業者がサーバープロセッサをリードしていくことになる可能性はあるだろう。