EPYCの実力はHPCでも発揮されるか、控えめな実装ながら完成度が高いEPYCのFPユニット

Xeon Platinumに対して控えめと言われていたEPYCのFPユニット

512bitの拡張命令AVX512に対応し、それに合わせてFPユニットが大幅に改良されるとされていたXeon Platinumに対し、EPYCのFPユニットは256bitのAVX2までの対応に留まり、それも128bitのFPユニット2回分での対応となるとされていました。FPユニットに関して、Xeon Platinumに対してEPYCは控えめな実装だ、と言って良い状況がありました。

EPYCのFPユニットの完成度の高さに注目が集まる

実際にEPYCのFPユニットの実装は128bitのFPユニットのみの控えめなものですが、その完成度の高さに注目が集まっています。Anandtech.comは以下のように述べています。

the Zen FP unit might not have the highest “peak FLOPs” in theory, there is lots of FP code out there that runs best on EPYC.

ZenのFPユニットは最大の理論ピークFLOPSに乏しいかもしれないが、EPYCで最もよく動くFPコードは沢山ある。

Anandtech.com “Intel Skylake SP vs AMD EPYC-7000 CPU battle of the decade” FLOATING POINT PERFORMANCE

このZenアーキテクチャのFPユニットについての見解は、EPYCとXeon PlatinumをC-ray、ROV-ray、NAMDの3つのベンチマークを実施して比較した結論として語られています。C-rayは主にL1キャッシュから実行されるFP演算のベンチマーク、ROV-rayは主にL2キャッシュから実行されるFP演算のベンチマーク、NAMDはメモリアクセスが頻発するFP演算のベンチマークとして利用されています。

また、この結果を引用して、TOP500.comのNewsページではこのように語られています。

Intel will likely lose its 90 percent-plus market share in HPC for the first time in nearly ten years. And that would be a true EPYC event.

Intelは約10年振りに90%以上あるHPC市場のマーケット・シェアを失う可能性が高いです。そして、それはEPYCの本当のイベントです。

https://www.top500.org/news/with-epyc-amd-can-offer-serious-competition-to-intel-in-hpc/

TOP500.comはHPC業界で根強い支持のあるLINPACKベンチマークのランキング500位までを、6月と11月の年二回のペースで公開していることで有名です。そのNewsページでEPYCが高く評価されたこと自体が1つのニュースと言っても良いかも知れません。

Anandtech.comに公開されたベンチマークの詳細

Anandtech.comにて公開されたベンチマークの種類は以下の通りです。

  • C-ray: L1キャッシュから実行されるFP演算のベンチマーク
  • ROV-ray 3.7: L2キャッシュから実行されるFP演算のベンチマーク
  • NAMD: 頻繁にメモリ・サブシステムにアクセスするベンチマーク

これらは純粋にFPユニットの素性を測るために選ばれていると考えて良いでしょう。特にC-rayは実装の古いレイ・トレーサーで、現在は主流とは言えないソフトウエアで、レイ・トレーサーのベンチマークとしては不適切です。

C-rayの結果は以下の通りです。

  • C-ray 3840×2160
    1時間当たりのレンダリング数
    • Dual EPYC 7601: 526
    • Dual Xeon Platinum 8176: 340
    • Dual Xeon E5 2699 v4: 263

L1キャッシュから実行されるFP演算のベンチマークとして行われた、Xeon Platinum 8176は前世代のXeon E5 2699 v4から改善しているものの、EPYC 7601がぶっち切りでトップであることが分かります。Xeon Platinum 8167に対して54.7%上回っており、圧巻のスコアと言えます。

Wikichip.orgによるとEPYC 7601のL1キャッシュはコアあたり、i-cacheが64KB 4-way set associative cache、d-cacheが32KB 8-way set associative cacheという構成となっているのに対し、Xeon PlatinumのL1キャッシュはコアあたりi-cacheが32KB 8-way set associative cache、d-cacheが32KB 8-way set associative cacheとなっているようです。d-cacheはどちらもライトバック方式です。

  • EPYC 7061
    • i-cache 32×64 KiB 4-way set associative
    • d-cache 32×32 KiB 8-way set associative write-back

  • Xeon Platinum 8176
    • i-cache 28×32 KiB 8-way set associative
    • d-cache 28×32 KiB 8-way set associative write-back

ZenアーキテクチャのL1 d-cacheには7-8サイクルでアクセス可能であるのに対して、Skylakeはd-cacheに4-5サイクルでアクセス可能なようです。d-cacheではほとんど差は無くむしろEPYCは遅れを取っていると言えます。

L1キャッシュに差があるとすればi-cacheでしょう。EPYCはより多くの命令をL1キャッシュに格納でき、マイクロOPを2,048個キャッシュ出来ます。これはSkylakeの1,536個よりも多いです。この点がC-rayのスコアに繋がったのか定かではありませんが、L1のi-cache周りはZenアーキテクチャの方が優秀である可能性が高そうです。

L2キャッシュはどうでしょう、ROV-rayの結果は以下の通りです。

  • ROV-ray
    1時間当たりのレンダリング数
    • Dual EPYC 7601: 249
    • Dual Xeon E5 2699 v4: 214
    • Dual Xeon Platinum 8176: 188

こちらはXeon Platinum 8176が旧世代、Broadwell-EPアーキテクチャのXeon E5 2699 x4にすら及ばないという結果になりました。

Wikichip.orgによると、Skylake世代ではL2キャッシュがBroadwell世代の250KBから1MBへと大幅に拡張されているようです。最速12サイクルでL2にアクセス出来るようですが、この拡張が上手く行ってないのでしょうか。旧世代のXeonにすら負けるベンチがあるというのは驚きです。

最後に、メモリ・サブシステムをしっかり使う並列分子ダイナミクス・シミュレーションNAMDのベンチマークの結果です。

  • NAMD Molecular Dynamics 2.10 ns/days
    • Dual EPYC 7601: 5.8
    • Dual Xeon E5 2699 v4: 4.1
    • Dual Xeon Platinum 8176: 3.9

  • NAMD Molecular Dynamics 2.12 ns/days
    • Dual EPYC 7601: 5.6
    • Dual Xeon E5 2699 v4: 4.6
    • Dual Xeon Platinum 8176: 4.5

EPYC 7601とXeon Platinum 8176ではメモリチャネル数が違います。EPYC 7601がシングル・プロセッサで8チャネル、Xeon Platinum 8176がシングル・プロセッサで6チャネルです。デュアル・プロセッサでの比較ですので、それぞれ16チャネル、12チャネルとなります。NAMDの結果にはその差が順当に出ていると言えるでしょう。

NAMD Molecular Dynamics 2.12にはAnandtech.comに注意書きがあります。

“Intel’s compiler vectorization and auto-dispatch has improved performance for Intel processors supporting AVX instructions”

どうやらNAMD Molecular Dynamics 2.12はIntelのプロセッサに最適化されたもののようです。それでもEPYCが勝っていることを考えると、EPYCのプロセッサとしての出来の良さを感じざるを得ません。

FPユニットだけで計算をするわけではない

IntelのXeon Platinumの方が浮動小数点数演算の理論的なピーク性能は上ですが、それとは矛盾するベンチマークも出ています。浮動小数点数演算を含むプログラムはFPユニットだけで動かすものではないので、その他の要素の出来の良さとバランスでEPYCが勝るのでしょう。EPYCは浮動小数点数演算性能が必要なHPCなどの用途でも活躍するのかも知れません。

関連記事

LLVM 5.0にZenのスケジューラのモデルがマージ、数%パフォーマンスが改善する見込み

Core i9はRyzen Threadripperに対してクロックで大きく劣り性能で負けるか

Xeon PlatinumとEPYCをコンピューティング全体から考える

ソース

https://en.wikichip.org/wiki/WikiChip

One comment

Add a Comment

メールアドレスの入力は任意です。(公開されることはありません)