仮想化道場

2017年のサーバープロセッサ動向・AMD編

 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プロセッサにパフォーマンス的に負けるということになってしまったのだ。

AMDの前世代のアーキテクチャBulldozerは、1つのCPUコアは2つのALUと1つのFPで構成されている(AMD Bulldozerアーキテクチャ発表時の資料より)
Bulldozerアーキテクチャは、IntelのHTのようにコアを時分割で仮想的に2つにするのではなく、物理的にALUを2つ用意することで、高い性能を持つと話していた(同左)

 そこで、新たに開発したZenアーキテクチャでは、旧来のデザインに戻した。もちろん、ただ単にBulldozerアーキテクチャ以前のK10アーキテクチャなどのデザインに戻したのではなく、K10を踏まえて、より進化させたモノになっている。

Zenアーキテクチャは、Intelのプロセッサと同じようなスタンダードなアーキテクチャに戻った(AMD Ryzen発表会 New Horizonの資料より)

 Zenアーキテクチャでは、IntelのHyper-Threadingと同じようなSMT(Simultaneous Multithreading)を採用し、アイドルしているコアを仮想的に複数のコアとして使用できるようにしている。ある意味、IntelのCoreプロセッサとよく似たデザインといえる。

Zenでは、IntelのHTと同じ時分割でコアを仮想化するSMTが採用された(AMD Ryzen発表会 New Horizonの資料より)
プロセッサの構成もコアごとのモジュール構造となっている(同左)

 また、プロセッサにとって重要な分岐予測ユニットには、ニューラルネットワークのテクノロジーが採用されている。これは、人工知能などで使われているテクノロジーで、分岐予測において利用することで、動作中に分岐予測のパターンを学習し、予測精度をどんどんアップさせていく。

 これらの仕組みによりZenアーキテクチャでは、Bulldozerアーキテクチャの最後のプロセッサExcavatorから、40%以上の性能アップがあるとしている。

 Bulldozerアーキテクチャではシングルスレッドの性能を犠牲にしてマルチスレッド性能を重視したが、プロセッサ全体としては低パフォーマンスなプロセッサと言われることになった。そこで、Zenアーキテクチャでは、シングルスレッドのパフォーマンスを最大限にアップすることに注力した(その代わり、SMTでマルチスレッドの対応を果たす)。

 Bulldozerアーキテクチャのプロセッサは、Intelプロセッサと比べて低性能だったため、このくらいの性能アップは当然だろう。

Zenアーキテクチャは、Excavatorコアから40%パフォーマンスをアップしつつ、省電力化を果たしている(AMD Ryzen発表会 New Horizonの資料より)

 なおAMDでは、Zenで採用されたアーキテクチャ テクノロジーをSenseMIという名称で紹介している。

AMDでは、Zenアーキテクチャで採用した個々のテクノロジーをSenseMIテクノロジーと総称している(AMD Ryzen発表会 New Horizonの資料より)

 そのうちのPuer Powerでは、CPUの温度、クロック周波数、電圧センサーをモニタリングして、効率的にCPUに電力を供給する。これにより、動的に電力をコントロールすることで、無駄な電力をCPUに供給はしない。

Puer Power(AMD Ryzen発表会 New Horizonの資料より)

 またPure Powerと連携して、CPUブースト時の電力を、CPUの状態に従って動的にコントロールするPrecision Boostが搭載された。これにより、CPUは最大のパフォーマンスを出すことができる。

Precision Boost(AMD Ryzen発表会 New Horizonの資料より)
CPUの状態をCPU自身が検知し、可能なら高い動作クロックにブーストする。例えば、CPUの冷却に液冷や液体窒素などを使うと、高いブーストを得ることができる(同左)

 ZenアーキテクチャのCPU内部では、分岐予測にニューラルネットワークを使ったAIが応用されている。ユーザーが利用している状況を学習して、その環境にマッチした分岐予測を行う。

 Smart Prefetchでも、AIを使ってデータのプリフェッチを効率化する。

Neural Net Prediction(AMD Ryzen発表会 New Horizonの資料より)
Smart Prefetch(同左)

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数に関しては、フレキシブルな設計が出来るようになっている。

AMDでは、データセンター向けにx86/x64のZenアーキテクチャ、ARMアーキテクチャ(K12)のプロセッサと、APU(Zenベースのプロセッサ+GPU)の3つを提供する予定だ(AMD Ryzen発表会 New Horizonの資料より)
Zenアーキテクチャにより、サーバー分野への再挑戦を開始する(AMD Ryzen発表会 New Horizonの資料より)
Naplesは、2017年の中盤から後半にリリースされる予定(AMD Ryzen発表会 New Horizonの資料より)

 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なども必要になってきている。このあたりの環境が整えられるかが、重要な要素になっていくだろう。