2009-10-08 10 views
6
  1. 私はフロップの測定に関するいくつかの誤解をIntelアーキテクチャ上で持っていますが、FLOPと1つの乗算は一緒ですか?私はこれについてオンラインのどこかで読んでおり、これを拒否することはできません。私は、FLOPはさまざまな種類のCPUで異なる意味を持つことを知っています。FLOPS IntelのコアとC(内積)でテストする

  2. 理論ピークFLOPSはどのようにして計算できますか?私はIntel(R)Core(TM)2 Duo CPU E7400 @ 2.80GHzを使用しています。 GHzとFLOPSの関係はどういうものですか? (FLOPSのwikipediaのエントリでさえ、これを行う方法は指定していません)

  3. 私はコンピュータの実際の性能を(フロップで)測定するために使用します:2つのベクトルの内積サイズNのフリップフロップは、1つの加算または1つの乗算が1つのフロップであると考えられる場合に、フロップ2n(n-1)の数である。そうでない場合は、これをどのように計算すればよいですか?

私はそこにそれを行うためのより良い方法を知っているが、私は私の提案の計算が正しいかどうかを知りたいのです。私はベンチマークとしてLINPACKのどこかを読んでいますが、それがどういう仕組みか知りたいと思っています。

+0

乗算と加算は、通常、MAC(乗算累算)と呼ばれ、DSPでよく使用されるメトリックです。 – Skizz

答えて

2

This articleは、x86 CPUのFLOPS番号に関するいくつかの理論を示しています。それは現在のPentium 4までしかないが、おそらくあなたは外挿することができる。

2

FLOPは、浮動小数点演算の略です。

浮動小数点演算をサポートする任意のアーキテクチャで同じことを意味し、通常、1秒間に実行できる演算の数として測定されます(FLOPS;浮動小数点演算/秒)。

hereコンピュータのFLOPSを測定するツールがあります。

9

2番目の質問については、理論的なFLOPS計算はそれほど難しくありません。

(コア数)*(実行ユニット数/コア)*(サイクル数/秒)*(実行単位演算/サイクル)*(レジスタごとのフロート/実行ユニット操作)

Core-2 Duoには2つのコアとコアあたり1つの実行ユニットがあります。 SSEレジスタは128ビット幅です。 floatは32ビット幅であるため、レジスタごとに4つの浮動小数点数を格納できます。私は、実行ユニットが1サイクルにつき1SSE演算を実行すると仮定します。だから、次のようになります。 http://www.intel.com/support/processors/sb/cs-023143.htm

この数字は明らかに純粋に理論的な最良のパフォーマンスです:一致する

2 * 1 * 2.8 * 1 * 4 = 22.4 GFLOPS

。実世界のパフォーマンスは、さまざまな理由により、これに近づく可能性はほとんどありません。おそらく、実際のアプリのランタイムにフロップを直接関連付けることは価値がありません。アプリで使用されている計算を試してみることをお勧めします。

+0

それはまさに私があなたに感謝しなければならないことです。ところで、あなたはその方程式をどこで見つけましたか? –

+2

Core2は実際にSSE乗算を発行して各サイクルを追加できるため、単精度FLOPSの計算は2 * 1 * 2.8 * 2 * 4 = 44.8 GFLOPSです。インテルのリンクで倍精度のFLOPS(2 * 1 * 2.8 * 2 * 2 = 22.4)がリストされていると思います。 –

関連する問題