LinuxシステムでFLOPSを推定するための迅速で簡単なプログラムを探しています。 [〜#〜] hpl [〜#〜] を見つけましたが、それを取得していますコンパイルされたものは苛立たしいことがわかっています。ベンチマークパッケージの調査や依存ソフトウェアのインストールに1日費やす必要がない、FLOPSの大まかな見積もりだけが必要です。そのようなプログラムは存在しますか?2の倍数のCプログラムを作成するだけで十分でしょうか?ループに浮かぶ?
問題は、フロップとはどういう意味ですか?あなたが気にしているのがクロックあたりの最も単純な浮動小数点演算の数だけなら、それはおそらくクロック速度の3倍ですが、それはbogomipsと同じくらい無意味です。一部の浮動小数点演算は時間がかかります(最初は除算)。加算と乗算は通常高速です(1 fpユニットにつき1クロックあたり1)。次の問題はメモリのパフォーマンスです。最後のクラシックCRAYに31のメモリバンクがあったのには理由があります。最終的にCPUのパフォーマンスはメモリへの読み書き速度によって制限されるため、問題のキャッシュのレベルはどのくらいですか? Linpackはかつて本当のベンチマークでしたが、今ではキャッシュ(L1でない場合はL2)に収まり、純粋に理論上のCPUベンチマークになっています。そしてもちろん、あなたのSSE(etc)ユニットは浮動小数点パフォーマンスも追加できます。
どのディストリビューションを運営していますか?
これは良いポインタのように見えました: http://linuxtoolkit.blogspot.com/2009/04/intel-optimized-linpack-benchmark-for.html
http://onemansjourneyintolinux.blogspot.com/2008/12/show-us-yer-flops.html
http://www.phoronix-test-suite.com/ は、フロップのベンチマークをインストールする簡単な方法です。
それでも、なぜ気にかけるのか、何のためにそれを使用しているのでしょうか。意味のない数字だけが必要な場合でも、システムのbogomipsはdmesgにあります。
どうやら「sysbench」ベンチマークパッケージとコマンドがあります。
Sudo apt-get install sysbench
(またはbrew install sysbench
OS X)
次のように実行します。
sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
比較のための出力:
total time: 15.3047s
ref: http://www.midwesternmac.com/blogs/jeff-geerling/2013-vps-benchmarks-linode
概算見積もりの場合:
Raspberry Pi 2 :299.93 * 10 ^ 6 FLOPS( ソース )
Raspberry Pi 3:462.07 * 10 ^ 6 FLOPS( ソース )
cd benchmarks_2017/linux/mkl/benchmarks/linpack
./runme_xeon64
Thinkpad T460p( Intel i7-6700HQ CP )では、次のようになります。
This is a SAMPLE run script for SMP LINPACK. Change it to reflect
the correct number of CPUs/threads, problem input files, etc..
./runme_xeon64: 33: [: -gt: unexpected operator
Mi 21. Dez 11:50:29 CET 2016
Intel(R) Optimized LINPACK Benchmark data
Current date/time: Wed Dec 21 11:50:29 2016
CPU frequency: 3.491 GHz
Number of CPUs: 1
Number of cores: 4
Number of threads: 4
Parameters are set to:
Number of tests: 15
Number of equations to solve (problem size) : 1000 2000 5000 10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array : 1000 2000 5008 10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run : 4 2 2 2 2 2 2 2 2 2 1 1 1 1 1
Data alignment value (in Kbytes) : 4 4 4 4 4 4 4 4 4 4 4 1 1 1 1
Maximum memory requested that can be used=9800701024, at the size=35000
=================== Timing linear equation system solver ===================
Size LDA Align. Time(s) GFlops Residual Residual(norm) Check
1000 1000 4 0.014 46.5838 1.165068e-12 3.973181e-02 pass
1000 1000 4 0.010 64.7319 1.165068e-12 3.973181e-02 pass
1000 1000 4 0.009 77.3583 1.165068e-12 3.973181e-02 pass
1000 1000 4 0.010 67.0096 1.165068e-12 3.973181e-02 pass
2000 2000 4 0.064 83.6177 5.001027e-12 4.350281e-02 pass
2000 2000 4 0.063 84.5568 5.001027e-12 4.350281e-02 pass
5000 5008 4 0.709 117.6800 2.474679e-11 3.450740e-02 pass
5000 5008 4 0.699 119.2350 2.474679e-11 3.450740e-02 pass
10000 10000 4 4.895 136.2439 9.069137e-11 3.197870e-02 pass
10000 10000 4 4.904 135.9888 9.069137e-11 3.197870e-02 pass
15000 15000 4 17.260 130.3870 2.052533e-10 3.232773e-02 pass
15000 15000 4 18.159 123.9303 2.052533e-10 3.232773e-02 pass
18000 18008 4 31.091 125.0738 2.611497e-10 2.859910e-02 pass
18000 18008 4 31.869 122.0215 2.611497e-10 2.859910e-02 pass
20000 20016 4 44.877 118.8622 3.442628e-10 3.047480e-02 pass
20000 20016 4 44.646 119.4762 3.442628e-10 3.047480e-02 pass
22000 22008 4 57.918 122.5811 4.714135e-10 3.452918e-02 pass
22000 22008 4 57.171 124.1816 4.714135e-10 3.452918e-02 pass
25000 25000 4 86.259 120.7747 5.797896e-10 3.297056e-02 pass
25000 25000 4 83.721 124.4356 5.797896e-10 3.297056e-02 pass
26000 26000 4 97.420 120.2906 5.615238e-10 2.952660e-02 pass
26000 26000 4 96.061 121.9924 5.615238e-10 2.952660e-02 pass
27000 27000 4 109.479 119.8722 5.956148e-10 2.904520e-02 pass
30000 30000 1 315.697 57.0225 8.015488e-10 3.159714e-02 pass
35000 35000 1 2421.281 11.8061 1.161127e-09 3.370575e-02 pass
Performance Summary (GFlops)
Size LDA Align. Average Maximal
1000 1000 4 63.9209 77.3583
2000 2000 4 84.0872 84.5568
5000 5008 4 118.4575 119.2350
10000 10000 4 136.1164 136.2439
15000 15000 4 127.1586 130.3870
18000 18008 4 123.5477 125.0738
20000 20016 4 119.1692 119.4762
22000 22008 4 123.3813 124.1816
25000 25000 4 122.6052 124.4356
26000 26000 4 121.1415 121.9924
27000 27000 4 119.8722 119.8722
30000 30000 1 57.0225 57.0225
35000 35000 1 11.8061 11.8061
Residual checks PASSED
End of tests
Done: Mi 21. Dez 12:58:23 CET 2016
FLOPS=を測定するために伝統的に使用されている1つのベンチマークはLinpackです。別の一般的なFLOPSベンチマークはWhetstoneです。
もっと読む: ウィキペディアの "FLOPS"エントリ 、 砥石エントリ 、 Linpackエントリ
インテルからすぐに実行できるlinpackビルドを強くお勧めします: http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download/
クラスターについて説明するように、ここでは HPCC suite を使用しています。セットアップと調整には少し労力が必要ですが、私たちの場合、ポイント自体は自慢ではなく、クラスターの受け入れ基準の一部でした。ハードウェアがアドバタイズされたとおりに機能すること、すべてが正しくケーブル接続されていることなどを保証するには、パフォーマンスベンチマークがIMHOに不可欠です。
理論的なピークが必要な場合FLOPS数値、それは簡単です。CPUに関する記事(たとえば、realworldtech.comなどで)を確認して、DPの数に関する情報を取得してくださいFLOPS CPUコアはクロックサイクルごとに実行できます(現在のx86 CPUの場合、通常は4です)。次に、合計ピークFLOPSは
コア数* FLOPS /サイクル*周波数
次に、IBネットワークを備えたクラスターの場合、ピークの約80%をヒットできるはずですFLOPS HPL(BTWはHPCCのベンチマークの1つです))。