除算演算がある場合は、アルゴリズムを測定するときに、FOPと浮動小数点数の合計数を計算する方法は?特殊演算のFOPと浮動小数点演算の総数の計算方法(exp sin sqrt)?
たとえば、n2行列乗算、n3 * 2flops(乗算、加算)の計算では、同じデータセットn2を使用して、行列乗算の乗算演算を除算演算に変更し、計算する方法フロップ。行列乗算の結果と同じですか?
除算演算がある場合は、アルゴリズムを測定するときに、FOPと浮動小数点数の合計数を計算する方法は?特殊演算のFOPと浮動小数点演算の総数の計算方法(exp sin sqrt)?
たとえば、n2行列乗算、n3 * 2flops(乗算、加算)の計算では、同じデータセットn2を使用して、行列乗算の乗算演算を除算演算に変更し、計算する方法フロップ。行列乗算の結果と同じですか?
ああ、浮動小数点演算が何であるかを指定する標準はありません。
これは、異なるアーキテクチャが異なる一連の操作をネイティブにサポートしている可能性があるためです。
そこで、例えば、アーキテクチャは 月はすべての4つの基本的な操作、 添加のみと すべての基本的な操作に加えべき乗をサポートします。
一般に、浮動小数点演算という用語は、特定のマシンに高度にコンテキスト化されています。
しかし、あらゆる種類の操作を別々に数えることで、機械に依存しない優れた分析を行うことができます。
これは、基本的にハードウェアと同じ操作であるため、加重と減算は一緒に数えられるなど、いくつかの専門知識とブードーが必要です。
乗算と除算は、複雑な演算(べき乗、三角関数など)と同じように、別々にカウントされます。
最後に、すべての異なる操作の数がカウントされます。 mでN×メートル行列を乗算例えば
×K N・K・メートル乗算とN・K・(メートルを含みます-1)追加。その結果は、メートル MUL + N・K・(メートル -1)を追加する・N・Kあります。
この「フル情報」式は、通常は独自の結果であるため、参照マシーンと測定単位をピックアップすることで、「浮動小数点演算」の数を近似することができます。
例えばインテルからSkylakeマイクロアーキテクチャのマイクロアーキテクチャはこれを持って、非常に単純化されたtimings table:
Operation Cycles
Addition 0.5
Subtraction 0.5
Division 3
Multiplication 0.5
我々は1 FLOPの測定単位として加算を取るならば、我々は分裂がいる限りであると言うことができます6追加として、それは6フロップのようです。乗算と加算のすべてが完了するだけ1 FLOPを取るので -
Operation FLOPs
Addition 1 (By definition)
Subtraction 1
Division 6
Multiplication 1
そこで上記の例は、N・K・(1 2・メートル)まで減少します。
これは簡略化された表示であり、実際のマシンははるかに複雑です(たとえばSkylakeにベクトル単位があり、測定単位とタイミングが変更される可能性があるFMAがサポートされています)。
とにかく、異なる種類の操作の表現はマシンに依存せず、後で特定のケースを作るときに単一の数に変換することができます。