MCMを採用することのメリット/デメリット

実装の観点でZenの特徴はMCM(Multi Chip Module)を使っている点である。EPYCプロセサは32コアを搭載しているが、これを1チップで作ると777mm2程度の巨大チップとなる。一方、4チップに分割してMCMパッケージで4チップを結合して実現すると、それぞれのチップの共通する部分が重複したり、接続のための回路が必要となったりして、合計のチップ面積は10%程度大きくなってしまうが213mm2チップ4個で作れる。

巨大チップは、その中に1か所でも不良個所があれば全体が使えなくなってしまうが、4分割した213mm2チップの場合は、不良のあるチップだけを良品に替えてMCMに搭載すれば良いので、全体として歩留まりが高くなり、1チップの場合と比べて製造コストは0.59倍になるという。

そして、次の右側の図に見られるように4チップを配置した場合に、チップ間を接続するInfinity Fabricの端子が近くなり、DDRメモリのポートやI/Oのポートが外側に来るようにレイアウトされている。

なお、この8コア(2CCX)チップはAMDの開発コードでは「Zeppelin」と呼ばれており、筆者の昔の仲間が集まった時に、Zeppelinの飛行船を描いたAMDのT-シャツを着てきた人が居た。

  • 32コアのEPYCは、4チップをMCMに搭載して作られている

    32コアのEPYCは、4チップをMCMに搭載して作られている。4分割するとチップ面積は10%程度増えるが、歩留まりが向上するので、1チップで作るのと比べて、チップコストを59%に低減できる。そして、4チップを右側の図のように配置し、チップ間の接続やDIMMの接続が短くなるようにしている

EPYCプロセサはDDR4メモリポートを8チャネル持っている。これは6チャネルのXeonに比べてメモリバンド幅の点で優位で、データセンタ向けプロセサとしてのアピールポイントである。ただし、CaviumのARM v8アーキテクチャのThunder X2も8チャネルであるので、EPYCだけの特徴ではない。

しかし、EPYCの場合、8チャネルといってもチップ当たりでは2チャネルであるので1チップから8チャネルを出すThunder X2よりも物理設計的には無理がないと思われる。

  • EPYCは16枚のDDR4 DIMM接続することができる

    EPYCはDDR4メモリインタフェースを8チャネル持ち、16枚のDIMM接続することができる。これは6チャネルのXeonよりも33%高いバンド幅となる

EPYCは、I/Oも豪華でx16のPCI Expressリンクを8本持ち、トータルのレーン数は128レーンとなる。I/OもXeonのI/Oバンド幅を上回る256GB/sとなっている。

  • EPYCは全体でPCIeを128レーン持っている

    EPYCはx16のPCIeを8チャネル持ち、全体ではPCIeを128レーン持っているソケット当たりのバンド幅は256GB/sである

次の図は、EPYCのI/O性能の測定結果を示すもので、PCI ExpressからLocal DRAMに転送する場合はReadで12.2GB/s、Writeで13.0GB/sのバンド幅である。EPYCのMCM上のチップ間を接続するInfinity Fabricを経由する場合はReadが12.1GB/s、Writeが14.2GB/sとなっており、ほぼ同じバンド幅となっている。

24台のSamsungのpm1725a NVMe SSDを使い、4KBのReadを行った場合は9.2M IOPsの性能が得られたという。

  • 1PのEPYC 7601のI/O性能

    1PのEPYC 7601のI/O性能。PCIeからローカルDRAMへのReadは12.2GB/s、Writeは13.0GB/s。これはプロトコルオーバヘッドを考慮した最大バンド幅に近い値である。また、Samsungのpm1725aを使った場合の4KB Readで9.2MIOPsが出せる。

EPYCの低消費電力技術

マルチコアのプロセサの場合、一般に全部のコアを同じクロック周波数で動かすことになり、一番遅いコアが動作できるクロックになる。しかし、これは高速のコアには必要以上の電源電圧を与えることになり、電力の無駄遣いとなる。

EPYCは32コアを持っているが、それぞれのコアに最適な電圧の電源を供給して、無駄な消費電力を抑えている。しかし、 普通のインダクタやトランスなどを使うDC-DCコンバータを32個搭載するのは難しいので、LDO(Low Drop Out)という電源電圧を少し下げる直列型の電圧レギュレータを使っている。

  • EPYCは32コア個別にLDOレギュレータを持ち、最適な電源電圧を供給することができる

    EPYCは32コア個別にLDOレギュレータを持ち、最適な電源電圧を供給することができる。これにより無駄な電力消費を抑えている

次の図はStream Triadによるメモリバンド幅性能とSPECrate2017のintとfpの測定結果を示している。Stream Triadは1Pの場合は145GB/sで、DIMMのピークバンド幅の171GB/sの85%が出ている。2Pの場合は1Pの97%増しと、ほぼリニアにスケールしている。

SPEC2017の方は、Intelの28コアのXeon 8176との性能、メモリバンド幅、コストの比較を行っている。SPEC217_int_rate_baseベンチマークでは、EPYC7601はスコアが272に対して、IntelのXeon 8176は254、SPEC217_fp_rate_baseベンチマークでは、EPYC7601はスコアが259に対して、IntelのXeon 8176は225であり、EPYCの方がそれぞれ7%と15%上回っている。

そして、ピークメモリバンド幅は8チャネルのEPYCが6チャネルのXeonを33%上回っている。しかし、平均的な売値は、EPYC 7601が4200ドルに対して、Xeon 8176 は8719ドルで、EPYCは半値以下で性能は若干上回っているというのがAMDの主張である。なお、この図ではEPYC 7601は64Cores、Xeon 8176は56Coresと書かれているが、これはハードウェアスレッドをコアと数えているためである。

EPYCはIntel Xeonの牙城を崩せるのか?

まとめであるが、AMDのEPYC 7000シリーズプロセサは、企業やデータセンタのサーバのTCO(Total Cost of Ownership)の改善に焦点をあてて開発したサーバ向けのプロセサである。最大32個のZenコアを搭載し、DDR4 DIMMチャネルを8チャネル持ち、最大2TBのメモリを搭載できる。I/OもPCIeを128レーン持ち、セキュリティ用の専用のサブシステムも搭載している。

また、XeonのようにDMI接続の外付けのブリッジチップを必要とせず、EPYC 1個でシステムを構成できる。

そして、次世代のEPYCプロセサもソケット互換になるので、サーバマザーボードを交換しないでCPUの交換だけでアップグレードが可能であるという。

  • AMDのEPYC 7000シリーズはデータセンタのTCO改善を狙ったアーキテクチャを持つ

    AMDのEPYC 7000シリーズはデータセンタのTCO改善を狙ったアーキテクチャを持つ。また、次世代のEPYCもソケット互換であるので、プロセサの交換だけでアップグレードでき、経済的である

このようにEPYC 7000はIntelのXeonに比べてコストパフォーマンスが高く、メモリバンド幅が広いのでメモリバウンドな処理では高い性能を発揮することができる優れものである。このため、MicrosoftとBaiduのデータセンタでは採用が始まっていると言われている。また、CrayはCS500クラスタスパコンに搭載することを発表している。これからIntel Xeonの牙城であるデータセンタ市場にどこまで食い込んで行けるかが注目される。