0

アプリケーションを実行せずに、HPC アプリケーション (NAS ベンチマーク) の mflops (プロセッサごとに 1 秒あたりの百万回の操作) を計算したいと考えています。Stream Benchmark を使用して、システム (スーパーコンピューター) の各コアのメモリ帯域幅を測定しました。コアのメモリ帯域幅情報を取得することで、アプリケーションのプロセッサあたりの mflops を取得する方法を考えています。私のノードには 64GiB メモリ (16 コア - 2 ソケットを含む) と、すべての物理コアを使用した 58 GiB/秒の集約帯域幅があります。私のコアのメモリ帯域幅は 2728.1204 MB/s から 10948.8962 MB/s まで変化しますが、それは NUMA アーキテクチャのためです。

どんな助けでも感謝します。

4

1 に答える 1

2

STREAM のメモリ帯域幅の結果だけでは、ベンチマークの MFLOPS/GFLOPS の見積もりを取得することはできません。さらに 2 つのパラメーターを知る必要があります。CPU コアのピーク MFLOPS/GFLOPS (ベクトル命令のすべてのバリアントと CPU 周波数制限: 最小、平均、最大を使用したクロック サイクルあたりの最大 FLOP 操作として優れています) および GFLOPS/GBytes (フロップからフロップまで)推定する必要があるすべてのプログラム (すべての NAS ベンチマーク) のバイト比、演算強度)。

ストリーム ベンチマークの演算強度は非常に低いです (2 つの倍精度オペランドあたり 0 DP=FP64 フロップ = コピーでは 2*8 バイト、スケールでは 16 バイトあたり 1 フロップ、加算では 1 フロップ / 24 バイト、トライアドでは 2 フロップ / 24 バイト)。 . そのため、Stream ベンチマークは、正しい実行ではメモリ帯域幅によって制限されます (および での不適切な実行ではキャッシュ帯域幅によって制限されます)。多くのベンチマークはより高い可能性があります

このデータ (メモリ帯域幅、さまざまなベクトル化レベルでの最大 gflops/GHz、CPU の通常/最大/低周波数、テストの算術強度) を使用して、ルーフライン パフォーマンス モデルhttps://crd.lbl.gov/departmentsの使用を開始できます。 /computer-science/PAR/research/roofline/

ルーフライン モデルの例。 メモリ制限部分

ルーフラインを使用すると、フロップ/バイトの x 軸があります。GFlop/s の y 軸 (両方とも対数スケール)。「屋根」のラインは、CPU (またはマシン) ごとに 2 つの部分で構成されます。

最初の部分は傾斜しており、算術強度が低い方に対応しています。この部分のアプリケーションは、データがメモリからロードされるのを待つ必要があります。フル GFlop/s の CPU 速度で操作するデータはありません。テストはメモリによって制限されます。この行は、STREAM ベンチマークによって定義されます。

ラインの 2 番目の部分は直線で、より高い強度に対応します。ここでのタスクは、メモリ帯域幅によって制限されるのではなく、利用可能な FLOPS によって制限されます。また、最新の CPU では、すべてのフロップはワイド ベクトル命令 (命令レベルの並列処理) でのみ使用でき、すべてのタスクが最も広いベクトルを使用できるわけではありません。

ルーフライン モデル;  Gflops ILP限定パーツ

于 2016-07-21T20:52:30.723 に答える