仮想化道場
低消費電力に向かうサーバー向けプロセッサ
(2013/6/17 06:00)
これまでのサーバー向けプロセッサは、高い性能と引き替えに消費電力が大きかった。しかし近年では、サーバー向けもデスクトップPCやノートPC向けと同じように、性能よりも低消費電力を重視するようになってきた。
しかし、サーバー分野では仮想化などにより、1台のサーバーで複数の仮想マシンを動かすことになってきているため、性能を大幅に犠牲にして消費電力を低くすることは行いにくい。
そこで、今までのサーバーとは全く異なるコンセプトを持ったサーバーが、新たに登場し始めている。HPのMoonshotに代表されるように、低消費電力のプロセッサを多数搭載した高密度サーバーだ。
最初の段階では汎用サーバーというわけではなく、特定分野に向けたサーバーとして提供されているが、高密度サーバーは今後大きな可能性を持ったサーバーといわれている。
現在、高密度サーバーに使用されているプロセッサは、低消費電力にターゲットを当てて開発されたモバイルやタブレット向けなどのプロセッサを流用していた。しかし、高密度サーバーへの期待が高まることを受けて、IntelやAMDなどのプロセッサベンダーは、サーバー向けの低消費電力プロセッサをリリースしようとしている。
大幅な性能アップを目指す次世代Atomプロセッサ
高密度サーバー向けのプロセッサAtom S1200シリーズを昨年リリースしたIntelは、5月初旬に次世代のAtomプロセッサ「Silvermont(シルバーモント)」を発表した。
Silvermontコアは、現在のAtom S1200シリーズが採用しているSaltwellコアから設計を一新して、低消費電力でありながら、ある程度の性能が出せるようになっている。
Saltwellコアは、最初のAtomプロセッサで採用されたBonnelコア(45nm)を32nmで製造しているため、大幅なアーキテクチャの変更はなかった。しかしSilvermontコアは、Xeonプロセッサなどで採用されているOut of Order方式にアーキテクチャを変更して、CPUコアあたりの性能を高めている。Out of Order方式は高い性能を実現できるが、性能を高めていくとどんどんトランジスタ数が増えていき、最終的には消費電力が高くなる。
そこでSilvermontコアでは、Out of Order方式を採用するものの、そこそこの性能にとどめ、消費電力を抑えている。ある意味、性能と消費電力のてんびんの上で、若干消費電力を優先したアーキテクチャといえる。さらに、Intelの最新製造プロセスとなる22nmプロセス、3Dトランジスタなど技術を採用し、低消費電力化を図っている。
ハードウェアの構造を見ると、Silvermontコアは、2つのCPUコアと1MBの2次キャッシュメモリが1つのモジュールとなっており、1次キャッシュメモリは、CPUコアごとに命令用32KB+データ用32KBを搭載している。このため、携帯電話やタブレット、ノートPC、サーバーなどの用途に合わせて、CPUコア数の数を簡単に増やすことができる。サーバー向けのSilvermontは、最大8コアを搭載するプロセッサとなる。
また、現状のAtom S1200ではHT(Hyper Threading)により仮想的に1つのCPUコアを2つのCPUとして利用できた。しかし、SilvermontコアではHT機能は採用されずに、物理CPUコア数がダイレクトにCPU数となる。
AtomでHTが採用されていたが、性能が低いプロセッサではHTが性能に寄与する部分は少ない。見かけのCPU数は少なくなっても、1つ1つのCPU性能をアップすることで全体の性能を向上させていくことにしたわけだ。HTによりずっとCPUが動作しているより、ある程度の性能を持つCPUで負荷の高い処理を短時間に終わらせ、負荷が低くなれば必要のないCPUコアなどの電力を制限するという手法の方が、省電力化のアプローチとしては有効という判断だろう。
Silvermontコアの性能がどのくらいになるのかは、実際に製品がリリースされてみないと分からないが、仮想化機能が劇的に性能アップすれば、SilvermontコアでHTがサポートされていなくても、ハイパーバイザーを利用すれば、CPUコアの効率のいい運用ができるだろう。
なおSilvermontコアには、Ivy Bridge世代のCore iプロセッサに入っている、AES暗号をハードウェアでサポートするAES-NI命令、AES-GCMを高速化するPCLMULQDQ命令、ランダムな数字を生成するIntel Secure Key、OSをウイルスなどから守るIntel OS Guard、正確なタイマー割り込みを実現するTSC Deadline Timerなどの機能が用意されている。
仮想化に関しても、最新プロセッサとなるHaswell世代で搭載されるVMFUNC命令(vmexitなしにハイパーコールを可能にする)、EPT(Extended Page Table)にも手が入り、Guest/Hostの遷移時間が短くなっている(第2世代のVT-x)。
また、Westmere世代でサポートされていたSSE 4.2レベルまでがサポートされる。ちなみに、Sandy Bridge世代から採用されたAVX命令はSilvermontではサポートされていない。
なお、今回発表された内容としては、CPUコアとなるSilvermontのアーキテクチャや製造プロセスなどで、具体的にどういった製品が発売されるかということは、実際にリリースされる時期に明らかにされるという。
Silvermontコアを採用した製品は、2013年秋から年末になると思われるが、分かっている範囲では、エンタープライズ分野で、サーバー向け「Avoton」、ネットワーク機器向けの「Rangeley」をリリースする計画を持っている。サーバー向けのAvotonは、Atom S1200シリーズのように、ストレージインターフェイスを多く持つストレージ向けのプロセッサ、高密度サーバー向けのプロセッサなど、多数のバリエーションがリリースされることになるだろう。
Jaguarコアを使ったAMDのサーバー向けプロセッサ「Opteron X」シリーズ
AMDも5月29日に、高密度サーバー向けのプロセッサOpteron Xシリーズを発表した。今回リリースしたOpteron X2150は、モバイル、タブレット、ノートPC向けに発表したKabiniというコード名のプロセッサを、そのまま流用したものだ。Kabiniは、Jaguarコアといわれる新しいアーキテクチャのCPUコアを搭載している。ちなみにKabiniは、A6-5200/A4-5000といった製品名でリリースされている。
そのCPUコアは、前述のようにJaguarコアと呼ばれる新しいアーキテクチャだ。Jaguarコアは、AMDがリリースしているBobcatコアのアーキテクチャをより洗練して、性能をアップし、省電力化を図った製品となる。このため、CPUアーキテクチャとしては、Bobcatコアからそれほど変わっているわけではない。
細かな改良としては、命令のフェッチやデコードを改良することで、Bobcatに比べると同じ動作周波数でも10%以上の性能が向上されている。
Bobcatは、シングルコア単位で設計されていた。このため、CPUコアごとに独立した2次キャッシュメモリが搭載されていた。
しかしJaguarでは、4つのCPUコアが2MBの2次キャッシュメモリを共有している。4つのCPUコアで2次キャッシュメモリを共有すると性能的に不利になるのではと思うが、AMDでは2次キャッシュメモリが効率よく利用されるようになり、逆に性能がアップするとしている。
Kabiniは、SSE4.1/4.2、AVX、AES、CLMULなどの命令セットが追加されている。ただ、仮想化機能に関しては、Bobcatと同じものが搭載されている。
Opteron X2150の最大の特徴としては、AMDのGPU HD8000がCPUコアに融合していることだ(AMDでは、CPUとGPUが融合したAPUと呼んでいる)。HD8000は、AMDがGCN(Graphics Core Next)と呼んでいる新世代のGPUで、Opteron X2150のHD8000は、16基のベクタユニットを4つ備えるCU(Compute Unit)を2つ搭載している(合計128ベクタユニット)。
また、GCNは単なるGPUとして動作するだけでなく、GPGPUとして利用できる。このため、ACE(Asynchronous Compute Engine)という回路が追加されている。ACEは、GPUユニットでプログラミングを動かすため回路だ。
Opteron X2150では、Open CLやDirectX 11.1によって、GPU側でプログラムを動かすことができる。HPCなどで使われるGPGPUと比べると、1つのプロセッサあたりではそれほど性能は上がらないが、高密度サーバーに数十個、数百個搭載すれば、今までにはなかった性能を出せるサーバーになる可能性がある。
CPUやGPUを搭載したAPUでありながら、Opteron X2150の消費電力は11Wとなっており、高密度サーバーにぴったりのプロセッサだといえる。実際、Opteron X2150は、HPの高密度サーバーHP Moonshotへの採用が決まっている。
なお余談になるが、実はJaguarコアは、Sonyの次世代ゲーム機PS4や、Microsoftの次世代ゲーム機Xbox ONEで採用されたプロセッサだ。
今回発表されたOpteron X2150は4コアを搭載しているものの、ゲーム機のPS4やXboix ONEでは、8コアを採用したカスタムチップとなっている。どうやらゲーム機向けは、Kabiniの4コアを1ユニットとして、合計2ユニット(4コア×2ユニット)で8コアとなっているようだ。
SilvermontやKabiniなどは、低消費電力で、ある程度のCPU性能を持つ。また、Kabiniは、GPGPUを搭載することで、CPUだけでは余り高い性能が出せない処理も、GPGPU側で行うことで高速化することができる。
Silvermontに関しては、以前のAtomで採用されていたImagination TechnologiesのPowerVRというGPUコアから、Intelの独自GPUコアに変更されている。このGPUコアは、デスクトップのHaswellなど使われているGPUコアをSilvermontなどのモバイル用途に低消費電力化したものだ。
KabiniでGPGPUを実現したAMDも、ソフトウェア環境と一歩先を行くNVIDIAと比べると満足な環境とはいえない。
サーバーという用途を考えると、SilvermontやKabiniは、サポートしているメモリ容量が少ない。それぞれのプロセッサは、1チャンネルで2DIMMしかサポートしない。AMDのKabiniでは、最大メモリ容量は32GBとなっている。メモリ容量に関しては、もう少し容量が増えると、サーバーでの利用が広がると思う。
また、SilvermontやKabiniはできる限り物理レイヤでOSやアプリケーションを動かすべきだろう。ただ、HPのMoonshotのように多数のCPUを搭載しているサーバーでは、物理レイヤを仮想化し、管理を行いやすいようにする必要がある。このようなことを考えれば、これまでとは少し違った観点での、仮想化機能の強化も必要になるだろう。
もしかすると、高密度サーバーのノードすべてでフルファンクションのOSを動かすのではなく、OSのコア部分だけを動かし、高密度サーバーに搭載されたXeonや(従来型の)Opteronのようなメインストリームのサーバープロセッサが全体をコントロールするといった、新しいアーキテクチャの管理が必要になるかもしれない。
GPGPUということでは、NVIDIAは、64ビットARMプロセッサとGPGPUと融合させた製品を2013年末から2014年にリリースする計画を立てている。このプロセッサがリリースされれば、高密度サーバーのプロセッサとしてx86 vs ARMという構図になることも期待できるのではないか、と考えている。