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のセキュリティ問題への対策も重要になっていると説明する。 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命令セットを実装したという経緯がある。 Opteron以前は、x86系サーバーCPUではDRAMコントローラはCPUの外にあった。CPUチップがノースブリッジにアクセス、そこからDRAMにアクセスした。また、マルチソケットの場合は、1つのノースブリッジチップに複数のCPUチップが接続されていた。 そのため、メモリアクセスのレイテンシが長く、アクセス競合があった。それに対してOpteronでは、CPUコアにDRAMコントローラを統合、CPUがダイレクトにDRAMにアクセスできるようにした。レイテンシが低減され、ローカルメモリに対してはアクセス競合がなくなった。 メモリコントローラの統合に合わせて、Opteronではチップ同士を接続するポイントツーポイントのコヒーレントなインターコネクト「Coherent HyperTransport」も導入した。 従来はノースブリッジチップにCPUが接続されていたが、OpteronではCPU同士を直結するマルチソケットに変わった。 初代のOpteronはシングルコアだったが、じつは最初からマルチコア構成を前提としてバス回りなどを設計していた。そのため、2世代目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では、8個のZEN CPUコアと2チャネルのDRAMインターフェイス、32ポートの高速I/Oを統合した「Zeppelin」ダイを使っている。 Zeppelinは、AMDとしては初めてマルチダイを前提として設計したダイで、オンパッケージでダイ同士を接続するインターコネクトファブリック「IFOP (Infinity Fabric On-Package)」を搭載している。マルチダイを前提として設計することで、ダイ分割によるレイテンシと電力を最初に抑えている。 AMDは、これまでも2ダイのサーバーCPUを導入したことがあるが、ダイ自体がマルチダイに最適化されて専用インターフェイスを備えたのは、今回のZeppelinが初めてとなる。 マルチダイアーキテクチャの導入によって、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の設計アプローチは、現在のソフトウェアの状況にもマッチしているという。 AMDは、サーバーソフトウェア側のトレンドが、デンスVM(Dense Virtual Machine)やコンテナ(container)へと傾いていると見ている。 小さなVMやコンテナでは、メモリの一貫性を確保しなければならないCPUコア群の粒度が小さくなる。それなら、チップレットでダイを分割しても、不利にならないというのがEPYCの設計思想だ。