FANATIC REPORT ファナティックレポート

【ベンチマーク | 性能比較】Skylake-SP CPUをSPEC® CPU2017でベンチマーク

2019.01.17 ベンチマークレポート


【ベンチマーク | 性能比較】Skylake-SP CPUをSPEC® CPU2017でベンチマーク

Intel® Xeon® Skylake-SPのSPEC® CPU2017によるベンチマーク結果

Skylake-SP(Scalable Processors)のCPUであるXeon® Platinum 8180をSPEC CPU2017で測定し、メモリチャネル数、スレッド数の影響を確認しました。そして、CPUの比較として同世代のXoen Gold 6126と比較しました。結果をご報告いたします。

Cinebench R15、Sandra2017を使ったSkylake-SP CPUのランク別のベンチマーク結果は
【ベンチマーク | 性能比較】Skylake-SPのベンチマークを行いました」をご覧ください。

SPEC® CPUとは?

SPEC® CPUは、非営利団体のSPEC(Standard Performance Evaluation Corporation)によって提供されているベンチマークソフトです。SPEC CPUは、CPUだけでなく、メモリ、コンパイラを含めた評価しているため、総合的な評価が可能です。
Dhrystone(整数演算を評価)やWhetstone(浮動小数点演算を評価)などのCPUのベンチマークソフトは合成ベンチマークで評価しています。スパコンなどHPC(High Performance Computing)向けに提供されているLINPACKはベクトル演算や行列演算を行い、浮動小数点演算を評価しています。
上記のようなベンチマークとは違い、SPEC CPUは整数演算、浮動小数点演算どちらも測定可能です。そして、総合的な評価が可能なだけでなく、実用途ベースのベンチマークプログラムを使用しています。ベンチマークが実用途ベースである説明は後述します。そのため、サーバやワークステーションの構成を評価するのに最適なベンチマークソフトです。
実際に、研究機関等で使用されるワークステーションの仕様要件にSPEC CPUの結果が求められることもあります。

 

SPEC CPU2017サイト:https://www.spec.org/cpu2017/

現在提供されているSPEC CPU2017のベンチマークは、大きく4種類あります。
整数演算(Integer)と浮動小数点演算(Floating Point)の指標として、Speed(処理速度)とRate(スループット)があります。4種類は下記の通りです。

  • Integer speed(intspeed):整数演算の処理速度を評価
  • Integer rate(intrate):整数演算のスループットを評価
  • Floating Point speed(fpspeed):浮動小数点演算の処理速度を評価
  • Floating Point rate(fprate):浮動小数点演算のスループットを評価

更に、ベンチマークプログラムのコンパイル法は、BaseとPeakの2種類があります。

  • Base:すべてのプログラムで同じコンパイルオプションを使用した結果(標準)
  • Peak:各プログラムに合わせたコンパイルオプションを使用した結果(最適化)

各演算には、様々なアプリケーションプログラム(以下、「個別プログラム」または単に「プログラム」という)があり、C、C++、Fortranのコードで書かれています。整数演算は10種類、浮動小数点演算は14種類のプログラムがあります。このプログラムのほとんどは、実際のユーザーアプリケーション(実用途ベース)から作られています。

プログラム一覧を下記に示します。SPEC CPU2017のドキュメントを参考に作成いたしました。(https://www.spec.org/cpu2017/Docs/)

表1 SPEC CPU2017ベンチマークプログラム一覧

プログラムアプリケーション プログラム名 処理言語
Integer speed Integer rate
perlインタプリンタ 600.perlbench_s 500.perlbench_r C
GNU Cコンパイラ 602.gcc_s 502.gcc_r C
ルートプランニング 605.mcf_s 505.mcf_r C
離散事象シミュレーション
-コンピュータネットワーク
620.omnetpp_s 520.omnetpp_r C++
XSlTによるXMLからHTMLへの変換 623.xalancbmk_s 523.xalancbmk_r C++
ビデオ圧縮 625.x264_s 525.x264_r C
人工知能:アルファベータ
ツリー探索(チェス)
631.deepsjeng_s 531.deepsjeng_r C++
人工知能:モンテカルロ
ツリー探索(Go)
641.leela_s 541.leela_r C++
人工知能:再帰的解法生成器(数独) 648.exchange2_s 548.exchange2_r Fortran
一般的なデータ圧縮 657.xz_s 557.xz_r C
プログラムアプリケーション プログラム名 処理言語
Floating Point Speed Floating Point Rate
爆発モデリング 603.bwaves_s 503.bwaves_r Fortran
物理学:相対性理論 607.cactuBSSN_s 507.cactuBSSN_r C++,C,Fortran
分子動力学 508.namd_r C++
生体医用イメージング-有限要素による光学断層撮影 510.parest_r C++
レイトレーシング 511.povray_r C++,C
流体力学 619.lbm_s 519.lbm_r C
天気予報 621.wrf_s 521.wrf_r Fortran,C
3Dレンダリングとアニメーション 526.blender_r C++,C
大気モデリング 627.cam4_s 527.cam4_r Fortran,C
ワイドスケールの海洋モデル(気候レベル) 628.pop2_s Fortran,C
画像操作 638.imagick_s 538.imagick_r C
分子動力学 644.nab_s 544.nab_r C
計算電磁気学 649.fotonik3d_s 549.fotonik3d_r Fortran
地域の海洋モデル 654.roms_s 554.roms_r Fortran

SPEC CPU2017の測定結果は、スコア値で評価しています。スコア値は実際の演算時間と基準となるSUT(System Under Test)の時間から算出されており、スコア値が高いほど高い性能を意味しています。スコア値は、ベンチマーク全体だけでなく、プログラムごとにも算出されます。そのため、プログラムごとの特性を確認することも可能です。例えば、fpspeedのスコア値が73.2であるならば、この結果は、SUTの73.2倍の性能であることを表しています。
詳しいスコア値の算出方法は(https://www.spec.org/cpu2017/Docs/overview.html#metrics)をご覧ください。

ベンチマーク環境

ベンチマークの構成は下記としました。

表2 ベンチマークの構成

仕様
マザーボード Supermicro X11DPG-QT (BIOS ver.2.1)
CPU Xeon Platinum 8180×2
Xoen Gold 6126×1
メモリ DDR4-2133 16GB×12 (192GB)
SSD Intel 530 Series 240GB 2.5inch SATA3 MLC
OS SUSE Linux Enterprise Server 12 SP3
Intelコンパイラ Parallel studio XE 2018 for Linux(ver.18.0.2.199)
評価ツール SPEC CPU2017

※メモリアクセス性能向上が可能なメモリアロケーター「jemalloc」は使用していません。

今回の報告は、各ベンチマークをBaseコンパイルで測定した結果を用いて比較をしました。Speedの指標には、Hyper threadをDisabledに、Rateの指標には、Enabledにして実行しました。

ベンチマーク結果

下記に測定したスコア値から比較分析した結果を記します。

●メモリチャネル数 (2CPU構成で測定)
メモリチャネル数を変化させ測定したベンチマーク結果を示します。1つのCPUに対してチャネル数2, 4, 6と変化させました。メモリ容量は、チャネル数に比例して各々64 GB, 128 GB, 192 GBです。
測定条件は、スレッド数をSpeed= 56、Rate= 112としました(Hyper thread=Disabled(Speed)/Enabled(Rate))。各演算のRateの実行には、「スレッド数×2」以上のメモリ容量が要求されています。そのため、チャネル数が少ないとメモリ容量が足りず、上記の条件では実行不可となった場合がありました。実行不可の条件は、「結果無し」とし記載していません。

【メモリチャネル数依存性(Platinum 8180×2)】

 

intspeedはメモリチャネル数が変わっても、性能結果は変わりませんでした。一方で、fpspeed、fprateはメモリチャネル数が増えると、性能も上がりました。fpspeedについて、メモリチャネル数2→4、4→6にすることで性能は各々1.5倍、1.2倍になりました。従って、整数演算のスピードにメモリチャネル数は影響せず、浮動小数点演算には、影響を与えることが明らかとなりました。
高いスループットを要求する場合や浮動小数点演算を主に使用する場合は、CPUのコア数(スレッド数)によって必要なメモリ容量は変わりますが、メモリの枚数は多いことが望ましいと考えられます。

●スレッド数(1CPU構成で測定)
メモリチャネル数で性能差が大きくでたfpspeedを用いて、スレッド数の影響を確認しました。Hyper threadはDisabledにしているため、本測定は、コア数= スレッド数となります。スレッド数を1, 7, 12, 14, 21, 28に変化させ、測定しました。また、メモリチャネル数= 6、CPU×1としました。測定結果及びスレッド数1に対する各スレッド数の性能倍を理論倍と比較した結果を示します。理論倍とは、スレッド数に比例(スレッド数1の場合1倍性能、スレッド数4の場合4倍性能)としました。

【スレッド数依存性(Floating Point Speed, Platinum 8180×1)】

【スレッド数1に対する性能倍数(Floating Point Speed, Platinum 8180×1)】

 

スレッド数を1→28にすると8.3倍の性能となりました。スレッド数が12以上では、性能はあまり変化しませんでした。実測倍と理論倍を比較すると、実測倍が理論倍に対して低いことがわかります。Speedでは、OpenMPを使用し並列化をして実行しています。そのため、OpenMPで並列化していますが、アプリケーションプログラムのオーバーヘッドが性能に影響を与えていると考えられます。
この結果から、浮動小数点演算のスピードに影響を与えるCPUのコア数がどの程度か確認することができました。

●CPUの種類 (1CPU構成で測定)
CPUの比較として、28コアのPlatinum 8180に対して12コアのGold 6126のベンチマークを行った結果を示します。測定条件は、メモリチャネル数= 6、CPU×1としました。SpeedとRateでHyper threadの有無があるため、Speedはコア数、Rateはスレッド数で比較しています。
各CPUのパフォーマンスは下記の通りです。

表3 CPUのパフォーマンス

クロック[GHz] TB時[Ghz] コア数 スレッド数 L3キャッシュ[MB] AVX512
FMAユニット数
Platinum 8180 2.5 3.8 28 56 38.5 2
Gold 6126 2.6 3.7 12 24 19.25 2

【SpeedのCPU依存性(CPU×1)】

【RateのCPU依存性(CPU×1)】

 

Gold 6126→Platinum 8180では、fpspeedは1.4倍、intspeedは1.1倍、fprateは1.9倍、intrateは2倍の性能でした。Rateはスレッド数で比較しています。コア数と比較すると2倍の差があるため、Speedに比べ性能に差が表れたと考えられます。
CPUの違いによって、性能は大きく変化することが明らかとなりました。同世代ではありますが、コア数の差は大きいようです。

次に、intspeedの個別プログラムのベンチマーク結果を示します。ここで、Platinum 8180(core= 12, Hyper thread= Disabled)の結果も合わせて示します。

【Integer SpeedにおけるCPU依存性】

 

プログラムの620.omnetpp_s(離散事象シミュレーション)と657.xz_s(一般的なデータ圧縮)に注目すると、620.omnetpp_sはPlatinum 8180同士を比較すると性能差はほぼありませんが、Platinum 8180とGold 6126を比較すると差があります。657.xz_sはPlatinum 8180(core= 12)とGold 6126を比較すると性能差があまりありませんが、Platinum 8180同士を比較すると差がありました。
この結果から、620.omnetpp_s(離散事象シミュレーション)はL3キャッシュの影響、657.xz_s(一般的なデータ圧縮)は実行コア数の影響と考えられます。このように、プログラム別に結果を評価することも可能です。

●測定結果のまとめ
上記考察から、fpspeedのベンチマーク結果から明らかになったことは下記です。

  • メモリチャネル数で比較すると、チャネル数2→4、4→6にすることで性能は各々1.5倍、1.2倍になりました。
  • Platinum 8180とGold 6126を比較すると、Platinum 8180はGold 6126の1.4倍の性能が得られました。CPUのコア数、L3キャッシュ容量の影響と考えられます。

総括

Skylake-SP CPUを使用しSPEC CPU2017でベンチマークを実施しました。
整数演算、浮動小数点演算共に、CPUのコア数(スレッド数)やメモリチャネル数が処理スピードや、スループットに大きな影響を与えることが明らかとなりました。
また、使用するアプリケーションによって性能が影響される条件は異なることが分かりました。利用するアプリケーションの特徴が分かっている場合、SPEC CPU2017を用いて、そのアプリケーションに特化した性能がでるようなシステム構成にチューニングすることが可能です。
今後もSPEC CPU2017を使用して、CPUやAMD等のプロセッサのベンチマークをしていく予定です。

当社では、SPEC CPU2017等を使用したベンチマークを実施して、お客様の利用アプリケーションに最適化したシステム構成を提案いたします。お気軽にご相談ください。


人気レポートランキング

レポートカテゴリ

製品カテゴリ