『問題解決型』ハードウェアメーカー
ファナティック
-
- ファナティックの特長 ファナティックの特長
- /
- 製品&ソリューション 製品&ソリューション
- /
- 導入事例 導入事例
- /
- 最新ニュース 最新ニュース
- /
- ファナティックレポート ファナティックレポート
- /
- サポート サポート
- /
- 会社案内 会社案内
- /
- 採用情報 採用情報
2019.01.17 ベンチマークレポート
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(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種類は下記の通りです。
更に、ベンチマークプログラムのコンパイル法は、BaseとPeakの2種類があります。
各演算には、様々なアプリケーションプログラム(以下、「個別プログラム」または単に「プログラム」という)があり、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のベンチマーク結果から明らかになったことは下記です。
Skylake-SP CPUを使用しSPEC CPU2017でベンチマークを実施しました。
整数演算、浮動小数点演算共に、CPUのコア数(スレッド数)やメモリチャネル数が処理スピードや、スループットに大きな影響を与えることが明らかとなりました。
また、使用するアプリケーションによって性能が影響される条件は異なることが分かりました。利用するアプリケーションの特徴が分かっている場合、SPEC CPU2017を用いて、そのアプリケーションに特化した性能がでるようなシステム構成にチューニングすることが可能です。
今後もSPEC CPU2017を使用して、CPUやAMD等のプロセッサのベンチマークをしていく予定です。
当社では、SPEC CPU2017等を使用したベンチマークを実施して、お客様の利用アプリケーションに最適化したシステム構成を提案いたします。お気軽にご相談ください。