私はこのスレッドから来ました:FLOPS IntelコアとCでのテスト(内部積)
簡単なテスト スクリプトを書き始めたとき、いくつかの疑問が頭に浮かびました。
なぜ浮動小数点?考慮しなければならない浮動小数点の重要な点は何ですか? 単純な int ではないのはなぜですか?
FLOPS を測定したい場合、2 つのベクトルの内積を計算しているとします。2 つのベクトルは float[] でなければなりませんか? int[] を使用すると測定値はどのように変化しますか?
私は Intel アーキテクチャに詳しくありません。次の操作があるとします。
float a = 3.14159; float b = 3.14158; for(int i = 0; i < 100; ++i) { a + b; }
これはいくつの「浮動小数点演算」ですか?
単純化された 32 ビット MIPS アーキテクチャを調べたので、少し混乱しています。すべての命令には、オペランド 1 に 5 ビット、オペランド 2 に 5 ビットなどの 32 ビットがあるため、Intel アーキテクチャ (具体的には前のスレッドと同じアーキテクチャ) の場合、レジスタは 128 ビットを保持できると言われました。SINGLE PRECISION 浮動小数点の場合、浮動小数点数ごとに 32 ビットですが、これは、プロセッサに供給される命令ごとに 4 つの浮動小数点数を使用できることを意味しますか? オペランドや命令の他の部分に含まれるビットも考慮する必要があるのではないでしょうか? これに特定の意味を持たずに、どうすれば4つの浮動小数点数をCPUに供給することができますか?
すべてをバラバラに考えるという私のアプローチが理にかなっているのかどうかはわかりません。そうでない場合、視点のどの「高さ」を見ればよいですか?