Author Archives: admin

Intel Xeon Silver 4114 (Skylake-SP) Linpckベンチマーク

Skylake-SPがリリースされて以来、ベンチマーク走らせていなかったのでやってみました。
■ハードウェア構成
CPU: Intel Xeon Silver 4114 (10core x2CPU)
MEM: DDR4-2400 128GB (16GB x8 枚 )
OS: CentOS 7
■ベンチマーク
HPL 2.2
# プロセスで使うメモリは、おおよそ 32GB 程度に調整
・環境1
GCC: 8.2.0
BLAS: Atlas 3.10.3
MPI: OpenMPI 3.1.1
・環境2
Intel Compiler: 2018 update3 Cluster Edition
BLAS: Intel MKL
MPI: Intel MPI
■スコア
・環境1
Compiler option: mpicc -Ofast -march=native
Score: 223.2GFLOPS
Core frequency: 2.2GHz
・環境2
Compiler option: mpiicc -Ofast -xCORE-AVX512
Score: 413.6GFLOPS
Core frequency: 1.4GHz
■補足情報
Intel Skylake-SP は並列計算時に、 AVX未使用時 AVX2使用時 AVX512使用時で各々にBase frequencyが決まっています。
そしてTurbo Boostにて、各々のBase frequencyに対しプロセスを動かすコア数ごとに動作周波数が変動します。
・AVX未使用時 [...]

AMD EPYC 7501 + 32GB DDR4-2666 性能評価

1CPU当たり32コアを持つEPYC 7501 x 2個と、32GB DDR4-2666 x 32枚(合計1024GB)を搭載するシステムPOWER MASTER Server S5081にて、姫野ベンチマークによる計測を行ってみました。
ちなみに、AMD EPYCには8coreのダイが4つパッケージに入っていて、各々のダイにはメモリ2chとPCIE x16 2本が接続できる構成となっているとのこと。1CPUでメモリ8chとPCIE x16 8本も持っているのです。
【環境】

CPU:EPYC 7501 x 2個
メインボード:Supermicro H11DSU-iN
メモリ:32GB DDR4-2666 ECC Registered x 32枚(合計1024GB)
OS:CentOS7.3 x86_64
【テスト】
① シングルスレッド評価
Compiler: gcc 7.2.1
Benchmark: himenoBMTxp_l(C, dynamic allocate version)
Size: L
② マルチスレッド評価
MPI: mpich3.2
Compiler: gcc 7.2.1
Benchmark: cc_himenoBMTxp_mpi(C + MPI, static allocate version)
Size: L、XL
【結果】

テスト(SIZE L)
スレッド数
Score(MFLOPS)

シングルスレッド評価
1
5034

マルチスレッド評価(実コアのみ)
64
88590

マルチスレッド評価(SMT有効)
128
71922

テスト(SIZE XL)
スレッド数
Score(MFLOPS)

マルチスレッド評価(実コアのみ)
64
92607

マルチスレッド評価(SMT有効)
128
72877

(SMT: Simultaneous MultiThreading)
Xeon E5-2680v4とEPYC 7501のシングルスレッド値で比較すると、 EPYC 7501は、Xeon E5-2680v4よりも 約1.35倍の高い結果となっています。
並列計算でもスレッド数64で良い結果となっていますが、スレッド数128では値が少し下がっていて、このあたりがメモリ帯域の限界ではなかろうか?
いずれにしても、すでに持っているバイナリ(アプリケーション)で、パフォーマンス向上を目指すならば、AMD [...]

Ryzen 7 1800X + 8GB DDR4-2400 性能評価(姫野ベンチ)

1CPU当たり8コアを持つRyzen 7 1800Xと、8GB DDR4-2400 x 2枚(合計16GB)を搭載するシステムPOWER MASTER A9391にて、姫野ベンチマークによる計測を行ってみました。

【環境】

CPU:Ryzen 7 1800X
メインボード:ASUS PRIME B350M-A
メモリ:8GB DDR4-2400 x 2枚(合計16GB)
OS:CentOS7.3 x86_64
【テスト】
① シングルスレッド評価
Compiler: gcc 4.8.5
Benchmark: himenoBMTxp_l(C, dynamic allocate version)
Size: L
② マルチスレッド評価
MPI: mpich3.2
Compiler: gcc 4.8.5
Benchmark: cc_himenoBMTxp_mpi(C + MPI, static allocate version)
Size: L
【結果】

テスト
スレッド数
Score(MFLOPS)

シングルスレッド評価
1
6229

マルチスレッド評価
8
12913

シングルスレッド評価(姫野ベンチ) – Broadwell-EP

Compiler: gcc 4.8.5
Benchmark: himenoBMTxp
Size: L

CPUモデル
コア数
シングルスレッドスコア

Xeon E5-2680v4 (14Core/2.4GHz/35MB/QPI 9.6GT/120W)
4
3690

Xeon E5-1650v4 (6Core/3.6GHz/15MB/140W)
6
4799

Xeon E5-1630v4 (4Core/3.7GHz/10MB/140W)
4
4199

Broadwell-EPアーキテクチャー・ワークステーション用CPU「 Xeon E5-1650v4」のベンチマーク記録を追加しました。コンパイラーは、gcc 4.8.5を利用しました。

Xeon E5-2695v4搭載システム 姫野ベンチマーク評価

1CPU当たり18コアを持つXeon E5-2695v4を2個と、256GB(32GB DDR4-2400 ECC REG x8枚)を搭載するシステムPOWER MASTER Vision S4382にて、姫野ベンチマークによる計測を行ってみました。

【環境】

Xeon E5-2695v4 (18Core/2.1GHz/45MB/QPI 9.6GT/120W) x 2個
32GB DDR4-2400 ECC Registered x 8枚
Supermicero X10DAi
OS:CentOS7.1 x86_64
GNUコンパイラ:GCC 4.8.5
OpenMPI:1.8.5
姫野ベンチ:himenoBMTxp_l size L
姫野ベンチ並列バージョン:cc_himenobmt_mpi size L

NUMAノードを確認すると、node0には#0から#17コアが、node1には#18から#35コアが割り当てられていました。(Hyper-Threading分まで含めると、node0には#0から#17コアと#36から#53、node1には#18から#35コアと#54から#71まででした。)
スレッド数1、2,4,8,16,32,36,72での結果が以下の青色で示す棒グラフです。(スレッド数1ではhimenoBMTxp_l size Lの結果、スレッド数2,4,8,16,32,36,72ではcc_himenobmt_mpi size Lの結果です。)
ベンチマークを行う際、なるべくジョブを各NUMAノードに均等に配分する様に実行しました。例えば、8 threadsの場合、コマンドを表記すると、

$ taskset -c 0-3,18-21 mpirun -n 8 ./bmt

などです。

また、4, 8, 16 threadsのみとなりますが、片方のNUMAノードにのみでジョブを実行した場合の結果もグラフに、マゼンタで示してあります。実行時のコマンドも表記すると、

$ taskset -c 0-7 mpirun -n 8 ./bmt

などです。
特に面白い結果が4, 8, 16 threadsにおいて、各NUMAノードへ均等にジョブを割り当てた場合と、片側NUMAノードにのみジョブを実行した場合です。
片側NUMAノードへジョブを割り当てた場合には、各NUMAノードへ均等にジョブを割り当てた場合と比べて、分割数4では10%程度、分割数8では20%程度、分割数16では40%程度落ち込んでいます。
1つのNUMAノードへのジョブが集中しない様に、分配する方が良いパフォーマンスを得られることがわかります。