前回はEPYCの位置付けを紹介した。今回は、EPYCがどれほどの競争力を持ち得る構造なのかを解説する。

 2017年3月に発表したRyzenと今回のEPYC、8月に発売される16コア/32スレッドの「ThreadRipper(スレッドリッパー)」と、AMDは3つのZenコアベースのCPUを投入する。これらが搭載しているダイ(半導体本体)は完全に同じだ。違いはパッケージに最大でいくつダイを搭載するかであり、Ryzenは1個、ThreadRipperは2個、EPYCは4個となっている。

 これは当初からの予定であり、そもそもZenコアそのものがサーバー向けを強く意識した構成になっている。RyzenやThreadRipperは、ここからPCに不要な機能を無効化する形でリリースされる。これも昔からよくある話だ。K7(Athlon/Athlon MP)はデュアルプロセッササーバーを念頭に置いた構成だったし、K8(Athlon 64/Opteron)はまずサーバー向けから投入されたという伝統をZenコアも受け継いだ、と考えればよいだろう。

Zenの演算コアは重厚な構成

 Zenコアのマイクロアーキテクチャーに目を向けよう。内部のパイプラインは4命令同時解釈(デコード)、6命令同時実行が可能という重厚な構成である。構造そのものはコンサバティブというか、K7/K8/K10というAMDの従来のコアを踏襲したような構成であるが、性能は大幅に強化されている。

Zenコアの概略。デコード後の命令をL0(0次)キャッシュ的に保存する「MicroOp Cache(マイクロオプキャッシュ)を搭載している。この仕組みは、米インテルが2011年にリリースした「Sandy Bridge」で先行実装したが、AMDもZenコアでフォローした。
Zenコアの概略。デコード後の命令をL0(0次)キャッシュ的に保存する「MicroOp Cache(マイクロオプキャッシュ)を搭載している。この仕組みは、米インテルが2011年にリリースした「Sandy Bridge」で先行実装したが、AMDもZenコアでフォローした。
(出所:米AMD、以下同じ)
[画像のクリックで拡大表示]

 これは米インテルの現行CPUであるCoreシリーズが、元祖とでも言うべき1995年のP6コア(Pentium Pro)の面影を残しつつ、大幅に強化されていることよく似ている。もちろん、後追いの製品が先行製品より劣っていると競争力の面では話にならないわけで、インテルの「Broadwell」世代(PC向けは第5世代Coreプロセッサー)と比較した場合、主要なスペックはほぼ同等以上になっている。

「L2/L3 Latency」(2次キャッシュ/3次キャッシュのレイテンシー)やFADD/FMUL/FMAは数字が低いほど高速。そのほかは数字が大きいほど高速になる。
「L2/L3 Latency」(2次キャッシュ/3次キャッシュのレイテンシー)やFADD/FMUL/FMAは数字が低いほど高速。そのほかは数字が大きいほど高速になる。
[画像のクリックで拡大表示]

 インテルのサーバー向けCPUとしては最新の「Skylake」世代(サーバー向けはSkylake-SP、Xeonスケーラブル・プロセッサーが相当する)に比べると見劣りする部分もあるが、これは主にFPU(浮動小数点演算)に関係してくる。Skylake世代では512ビットのSIMD演算(AVX-512、SIMDはシングル・インストラクション・マルチプル・データの略)をサポートし、演算性能を大幅に引き上げた。理論上はZenコアの4倍だ。ただ、これを生かすにはデータの読み込みと書き出し速度も合わせて引き上げなければならない。