仮想化道場
2017年のサーバープロセッサ動向・AMD編
2017年2月9日 05:55
AMDにとっては、待望の2017年がやってくる。以前から開発が進んでいた新しいマイクロアーキテクチャ、Zenベースのプロセッサが登場するからだ。
本稿では、この新たなZenマイクロアーキテクチャを中心に、サーバー向けのx86プロセッサ領域における、AMDの取り組みを紹介する。
新たにデザインし直されたZenアーキテクチャ
Zenアーキテクチャは、AMDのBulldozerアーキテクチャ(最後のプロセッサはExcavator)を破棄して、新たにアーキテクチャからデザインし直したものだ。
Bulldozerアーキテクチャは、シングルスレッド性能を犠牲にしてマルチスレッド性能がアップするように、高クロックで動作するように設計されていたが、実際には半導体製造プロセスとの兼ね合いなどで、当初考えたほど高クロックでの動作はできなかった。
またBulldozerアーキテクチャでは、ALU(Arithmetic and Logic Unit:演算装置)をシンプルな構成にし、1つのコアに2つのALUを搭載させてスレッドの並列動作性能を向上させようとしていた。そして、2つのコアで1つのFPU(Floating Point Unit:浮動小数点演算装置)を共有するという仕組みだったが、スケジューラの機能が複雑になり、この部分がボトルネックになったともいわれている。
Bulldozerプロセッサのリリース後も何世代か改良が行われたが、根本的なアーキテクチャデザインの問題から、パフォーマンス面では、Intelのプロセッサに追いつくことができなかった。8コアあるBulldozerプロセッサが、2コアのCoreプロセッサにパフォーマンス的に負けるということになってしまったのだ。
そこで、新たに開発したZenアーキテクチャでは、旧来のデザインに戻した。もちろん、ただ単にBulldozerアーキテクチャ以前のK10アーキテクチャなどのデザインに戻したのではなく、K10を踏まえて、より進化させたモノになっている。
Zenアーキテクチャでは、IntelのHyper-Threadingと同じようなSMT(Simultaneous Multithreading)を採用し、アイドルしているコアを仮想的に複数のコアとして使用できるようにしている。ある意味、IntelのCoreプロセッサとよく似たデザインといえる。
また、プロセッサにとって重要な分岐予測ユニットには、ニューラルネットワークのテクノロジーが採用されている。これは、人工知能などで使われているテクノロジーで、分岐予測において利用することで、動作中に分岐予測のパターンを学習し、予測精度をどんどんアップさせていく。
これらの仕組みによりZenアーキテクチャでは、Bulldozerアーキテクチャの最後のプロセッサExcavatorから、40%以上の性能アップがあるとしている。
Bulldozerアーキテクチャではシングルスレッドの性能を犠牲にしてマルチスレッド性能を重視したが、プロセッサ全体としては低パフォーマンスなプロセッサと言われることになった。そこで、Zenアーキテクチャでは、シングルスレッドのパフォーマンスを最大限にアップすることに注力した(その代わり、SMTでマルチスレッドの対応を果たす)。
Bulldozerアーキテクチャのプロセッサは、Intelプロセッサと比べて低性能だったため、このくらいの性能アップは当然だろう。
なおAMDでは、Zenで採用されたアーキテクチャ テクノロジーをSenseMIという名称で紹介している。
そのうちのPure Powerでは、CPUの温度、クロック周波数、電圧センサーをモニタリングして、効率的にCPUに電力を供給する。これにより、動的に電力をコントロールすることで、無駄な電力をCPUに供給はしない。
またPure Powerと連携して、CPUブースト時の電力を、CPUの状態に従って動的にコントロールするPrecision Boostが搭載された。これにより、CPUは最大のパフォーマンスを出すことができる。
ZenアーキテクチャのCPU内部では、分岐予測にニューラルネットワークを使ったAIが応用されている。ユーザーが利用している状況を学習して、その環境にマッチした分岐予測を行う。
Smart Prefetchでも、AIを使ってデータのプリフェッチを効率化する。
Naplesは早くて2017年夏ごろに登場か
Zenアーキテクチャを採用したプロセッサとしては、2017年3月ごろにコンシューマ向けのRyzen(開発コード名:Summit Ridge)がリリースされる。デスクトップPC向けのSummit Ridgeは最大8コア/16スレッド、ノートPC向けのRaven Ridge(開発コード名)は最大4コア/8スレッド(製品によって2コア/4スレッドも用意)となる。
サーバー向けはNaplesという開発コード名で、32コア/64スレッド プロセッサの開発が進んでいる。Summit Ridgeが8コア/16スレッドだが、Naplesは1ダイに16コアが搭載され、MCMで2ダイを接続して32コアにしているのではと推測される。
なおAMDは、Zenアーキテクチャや新しいGPUアーキテクチャのVegaなどで、モジュールアーキテクチャを採用していると話している。このため、コア数やGPUのCU数に関しては、フレキシブルな設計ができるようになっている。
Naplesサーバーは、2ソケット製品が計画されているため、1台のサーバーとしてみれば64コア/128スレッドの膨大なリソースを持つサーバーになる。
Naplesのリリースに関しては、2017年の夏ごろとしているが、もしかすると2017年末、下手をすると2018年にまで遅れるかもしれない。このあたりは、コンシューマ向けのRyzenの量産が順調にいくのかどうか、といった事情によっても代わってくるだろう
*****
AMDとしては、素晴らしいプロセッサを開発したと感じているだろう。しかし、大手のサーバーベンダーが実際にNaplesを採用するかは難しいといえる。
AMDは、OpteronでIntel Xeonを追撃したが、Bulldozerアーキテクチャ後は徐々に大手サーバーベンダーからAMDプロセッサを採用したサーバーのリリースはなくなった。このあたりのことを考えれば、Naplesになったといってすぐに採用が進むとは思えない。Intel Xeonに比べて、よほどコストやパフォーマンスが優れていないと、採用例は増えていかないだろう。
ただ、Naplesのパフォーマンスやシステムの安定性などが実証されれば、クラウド事業者のデータセンターなどに大量導入される可能性もある。AWS(Amazon Web Services)、Microsoft Azure、Google、Facebookなどは、サーバーベンダーからサーバーを調達するよりも、Open Compute Projectなどの仕様に従ったサーバーを、自社仕様のサーバーとしてOEMベンダーに開発してもらうようになっている。
こういった用途においては、安定性や互換性などが実証されれば、Xeonでなくても問題ない。また、企業に導入されるサーバーよりもコストはシビアだが、数千台、数万台、数十万台といった規模での導入が行われるため、AMDとしては大きなメリットになるだろう。
また、Naples自体がローコストだった場合は、HPC用途などで多数のプロセッサが必要になる大学や研究所などに採用される可能性もある。
クラウド事業者で高い評判を得られれば、企業のオンプレミスサーバーとしての採用も増えてくるだろう。実際に製品が出てみるまで、状況がどうなるかわからない。ただ最近は、プロセッサそのものの性能だけでなく、サーバーシステム全体のパフォーマンスを向上させるフラッシュメモリ(SSDだけでなくNVRAMなども)、機械学習や人工知能などに利用されるGPGPU、FPGAなども必要になってきている。このあたりの環境が整えられるかが、重要な要素になっていくだろう。