後藤弘茂のWeekly海外ニュース

AMDが語る、サーバー向けCPU「EPYC」と「Opteron」の設計思想の共通点

サーバー市場に対するAMDの姿勢

 AMDは、サーバー向けCPU「EPYC」の導入から1年、Intelが支配するサーバー市場に挑んでいる。

 AMDでEPYCを担当するScott Aylor氏(Corporate Vice President & General Manager, Enterprise Solutions, AMD)は、EPYCには大きなビジネスチャンスがあると説明する。

AMDの歴史とEPYC

 EPYCの登場以前の状況は、サーバーCPUのCPUコア数は世代毎に少しずつしか増えず、その一方で、コストばかり上昇していたとAylor氏は言う。さらに、ハードウェアはソフトウェアの進化に追いついておらず、今年(2018年)になって注目を集めている、CPUのセキュリティ問題への対策も重要になっていると説明する。

サーバー市場が行き詰まり状態にあったとAMDが指摘
コンテナ化などのソフトウェアの進化にハードが最適化されていないとAMDは指摘する

 Aylor氏は、EPYCはこうした状況をイノベーションによって打破できるため、大きなチャンスがあるという。

 「われわれは、この(サーバー)市場においてイノベーションをもたらして来た強力な歴史がある。64-bit命令、マルチコア、(CPU間のコヒーレントインターコネクトの)Coherent HyperTransport、インテグレーテッドメモリコントローラ。

 これらのイノベーションはすべてAMDからはじまった。こうした当社のイノベーションの歴史を顧みて重要となるのは、将来に向けて(同様のイノベーションを)、どうやって適用するか、ということだ。われわれがEPYCでやろうとして来たのは、将来に向けたイノベーションによって、顧客へのバリューをドライブすることだ。

 たとえば、(CPU)コア密度でのリーダーシップ、強力なコア機能、メモリ帯域でのリーダーシップ、新しいセキュリティテクノロジ。そして、ディスラプティブ(旧来の価値を破壊すよう)なシングルソケットオファーリング、これによって従来シングルソケットでは選択肢がなかったこと(機能や性能)が、EPYCのシングルソケットで可能になった。AMDは、市場にこうしたイノベーションをすべて再びもたらす」。

 この説明はちょっとわかりにくいが、EPYCの意図している方向を明確に示している。それは、過去に同じアプローチで成功したAMDの事例があるからだ。

 過去の歴史を見ると、AMDは最初の「Opteron (Hammer: ハマー)」アーキテクチャの導入時に、当時のサーバーCPUに大きな変革をもたらした。Aylor氏の説明は、それを踏まえたものとなっている。

サーバー市場を席巻したOpteronのイノベーション

 Opteronは、x86を拡張した64-bit命令「X86-64(のちにAMD64)」を実装していた。

 この当時Intelは、まだ64-bitソリューションとして公式には「IA-64」を推進しており、x86との互換性がなかった。

 実際には、Intelもx86の64-bit拡張(Yamhill)で動いていたのだが、AMDに先んじられ、結局AMDの実装に沿ったかたちでIntelもIntel 64命令セットを実装したという経緯がある。

AMDが発表した当時のx86-64プログラミングモデルのレジスタモード

 Opteron以前は、x86系サーバーCPUではDRAMコントローラはCPUの外にあった。CPUチップがノースブリッジにアクセス、そこからDRAMにアクセスした。また、マルチソケットの場合は、1つのノースブリッジチップに複数のCPUチップが接続されていた。

 そのため、メモリアクセスのレイテンシが長く、アクセス競合があった。それに対してOpteronでは、CPUコアにDRAMコントローラを統合、CPUがダイレクトにDRAMにアクセスできるようにした。レイテンシが低減され、ローカルメモリに対してはアクセス競合がなくなった。

Opteron以前のx86サーバーCPUのシステム構成
Opteronのマルチコア構成の例

 メモリコントローラの統合に合わせて、Opteronではチップ同士を接続するポイントツーポイントのコヒーレントなインターコネクト「Coherent HyperTransport」も導入した。

 従来はノースブリッジチップにCPUが接続されていたが、OpteronではCPU同士を直結するマルチソケットに変わった。

左がそれまでのマルチソケットサーバーの構成例、右がOpteronのマルトソケット構成例

 初代のOpteronはシングルコアだったが、じつは最初からマルチコア構成を前提としてバス回りなどを設計していた。そのため、2世代目Opteronでは、デュアルコアへとスムーズに移行ができた。

デュアルコアOpteronの概略図

 AMDは、Opteronではアーキテクチャ上の大胆なイノベーションによって、64-bit化でIntelをリードしてソフトウェア業界の支持を取り付け、メモリ性能とメモリ容量を大幅に伸ばし、マルチソケット構成のボトルネックを排し、マルチコアへの道を開いた。

 結果として、一時はOpteronサーバーが市場を席巻することになった。そして、IntelはOpteronのフィーチャを見据えた機能を次々に自社のCPUに取りこむことになった。実質的に、Intelがアーキテクチャ面でAMDをフォローすることになった。

 AMDにとって不幸だったのは、次のBulldozer(ブルドーザ)アーキテクチャ世代では、CPUアーキテクチャのトレンドを見誤り、IPC (Instruction-per-Clock)の低いコアへと切り替えたため、イノベーションの波をもたらすことができなかったことだ。

 一方、Intelは当初のボタンの掛け違いを修正して、Opteronの利点をすべて自社のものとした。そのため、Bulldozer世代ではAMDはサーバー市場でほとんど存在感をなくしてしまった。

シングルダイに統合したOpteronとは逆にダイを分割するEPYC

 AMDが今回、EPYCにおいて、Opteronのときのイノベーションを引き合いに出したことには意味がある。

 それはEPYCの方向性が、ちょうどOpteronのそれに重なるからだ。今回も、AMDはIntelにないチャレンジングなCPUアーキテクチャの改革を行ない、それによってCPUコア数やメモリ帯域、シングスソケットでの優位性といったイノベーションが可能になった。

 Opteron (Hammer)では、イノベーションの根源となるポイントは、サーバーCPUのトポロジの変革にあった。

 Opteronは、CPUコアとメモリコントローラとインターコネクトを1個のダイに統合し、また、ダイ上のCPUコア数も増やしていった。Opteronでは、スケールアップの可能性を重視したトポロジへと変革し、それに合わせてメモリアドレス空間も64-bit化で拡張した。

 今回のEPYCのイノベーションのポイントは、その逆に、CPU設計をスケールダウンする点にある。

 EPYCでは、CPUとメモリIF、I/Oを一定の塊で複数ダイに分割することで、逆にスケーラビリティを確保する。複数ダイを使う「マルチダイ(Multi-die)」アーキテクチャがEPYCのポイントだ。

 IntelのサーバーCPUは、大きな1個のダイで構成する「モノリシック(monolithic)」アーキテクチャを取っている。CPUコア数やI/Oが増えるにつれて、ダイサイズも大きくなり、製造コストも跳ね上がる。

 それに対して、AMDは、ZENアーキテクチャベースCPUの世代では、複数のダイでサーバーCPUを構成するマルチダイアーキテクチャを取った。「チップレット(Chiplet)」とAMDが呼ぶ、通常の商用CPUサイズのダイを複数接続することで、CPUコア数やI/O、メモリチャネル数の大きなサーバーCPUを実現する。

 AMDによると、32コアのCPUの場合は、モノリシックなダイに対して、チップレットのほうがコストを59%に抑えることができるという。

AMDはEPYCでマルチダイアーキテクチャを取った
モノリシックダイとチップレットの比較
EPYCとXeonの比較

マルチダイの利点でシングルソケットで優位に立つAMD

 EPYCでは、8個のZEN CPUコアと2チャネルのDRAMインターフェイス、32ポートの高速I/Oを統合した「Zeppelin」ダイを使っている。

 Zeppelinは、AMDとしては初めてマルチダイを前提として設計したダイで、オンパッケージでダイ同士を接続するインターコネクトファブリック「IFOP (Infinity Fabric On-Package)」を搭載している。マルチダイを前提として設計することで、ダイ分割によるレイテンシと電力を最初に抑えている。

 AMDは、これまでも2ダイのサーバーCPUを導入したことがあるが、ダイ自体がマルチダイに最適化されて専用インターフェイスを備えたのは、今回のZeppelinが初めてとなる。

EPYCのブロック図
Zeppelinのダイ
AMDのサーバーCPUのダイサイズとコア数

 マルチダイアーキテクチャの導入によって、AMDは低い設計コストと製造コストで、Intelのハイエンドサーバーと戦うことができるCPUコア数のサーバーCPUを実現できた。

 シングルソケットに、4個のダイのCPUとI/O、メモリIFを低コストに詰め込んだことで、メインストリームのサーバー市場でも、性能面で優位に立つことができた。EPYCでは、シングルソケットで32 CPUコア、8チャネルDRAMインターフェイス、128レーンのPCI Expressを提供できる。

 AMDが、EPYC導入の成功事例として挙げたものは、いずれもEPYCのアーキテクチャ面でのイノベーションの利点によるものだ。たとえば、Aylor氏は、「Yahoo! Japan」の事例では、従来の2ソケットシステムを、EPYCのシングルソケットシステムに置き換えることができたと説明した。

EPYCの日本での導入事例

 また、EPYCの設計アプローチは、現在のソフトウェアの状況にもマッチしているという。

 AMDは、サーバーソフトウェア側のトレンドが、デンスVM(Dense Virtual Machine)やコンテナ(container)へと傾いていると見ている。

 小さなVMやコンテナでは、メモリの一貫性を確保しなければならないCPUコア群の粒度が小さくなる。それなら、チップレットでダイを分割しても、不利にならないというのがEPYCの設計思想だ。

VMの粒度のトレンドとEPYCの設計の関係

EPYCが業界のイノベーションを促す触媒になるか

 AMDのサーバー市場への挑戦。今回のEPYCは、Opteronと同様に、イノベーションによって風穴を開けようとしている。Opteronのさいは、Intelが事実上Opteronのフィーチャと似たアプローチを採用することで、サーバーCPU全体が変わった。今回はどうなるのだろう。

 「おもしろい点は、イノベーションというものが、人々に従来の方法について再考させることだ。(これまで当たり前と思っていたものに対する)再考を促す触媒になる。

 競合(Intel)がどういったリアクションをするかは、まだわからない。しかし、カギとなるのは、われわれの方法がうまくいっていることだ。

 われわれは、イノベーションによって新しい技術を導入することは、業界全体を動かすと考えている。それは、当社にとってだけでなく、業界全体にとっていいことだ」(Aylor氏)。

 実際にはIntelも、AMDとは異なる方法だが、マルチダイのアプローチ(CPUとI/Oなどを分割)はすでに示唆している。それは、プロセス技術の状況から、マルチダイがリーズナブルなソリューションになりつつあるからだ。

 EPYCで技術的には状況を塗り替えつつあるAMD。システムパートナーは15社を越え、エコシステムも育ちつつある。

 しかし、サーバー市場は顧客側がコンサバティブであるため、AMDがビジネス上の結果を大きく謳えるようになるには、まだしばらく時間がかかりそうだ。

 また、AMDの前には、サーバールームへのアクセラレータチップの浸透の波が待っており、その対応も今後重要となる。それは、7nmプロセス以降の製品になるだろう。

EPYCのプラットフォームとエコシステム
EPYCのエンタープライズホスティング/SAAS市場での利点
EPYCのHPC(High Performance Computing)市場での利点
EPYCのバーチャライゼーション/クラウド市場での利点