問題タブ [flops]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - GPU の効率を FLOPS で見積もる (CUDA SAMPLES)
FLOPS の概念を完全には理解していないようです。CUDA SAMPLES には、行列乗算の例 (0_Simple/matrixMul) があります。この例では、行列の乗算ごとの FLOP (浮動小数点演算) の数は、次の式で計算されます。
したがって、これは、行列A(n x m)
をB(m x k)
で乗算するには、次のことを行う必要があることを意味します:2*n*m*k
浮動小数点演算。
ただし、結果の行列 の 1 つの要素を計算するには、乗算と加算の演算C (n x k)
を実行する必要があります。したがって、(要素を計算するための)演算の総数は、乗算と加算です。m
(m-1)
n x k
m*n*k
(m-1)*n*k
もちろん、足し算の回数を に設定することもできm*n*k
、合計の操作回数は になります2*n*m*k
。半分は掛け算で、半分は足し算です。
しかし、掛け算は足し算よりも計算コストが高いと思います。この 2 種類の操作が混同されるのはなぜですか? コンピューターサイエンスでは常にそうですか?2 つの異なるタイプの操作をどのように考慮することができますか?
私の英語でごめんなさい)
c - ASM プログラムの FLOPS を決定する
座標スキーム形式 (COOS) と圧縮行形式 (CSR) でスパース行列を乗算するための ASM プログラムを実装する必要がありました。これらのアルゴリズムをすべて実装したので、通常の行列乗算と比較してどれだけパフォーマンスが高いかを知りたいと思います。これらすべてのアルゴリズムの実行時間を測定するコードを既に実装しましたが、実行できる 1 秒あたりの浮動小数点演算 (FLOPS) の数も知りたいと判断しました。これを測定/カウントする方法の提案はありますか?
ここでは、使用されているシステムに関する背景情報をいくつか示します。
私たちの最初のアイデアは、浮動小数点演算 (算術演算、比較演算、移動演算) ごとにインクリメントする一種の FPO カウンターを実装することでしたが、これはコード全体にインクリメント演算を挿入する必要があり、速度も遅くなります。アプリケーションをダウンさせます...浮動小数点演算の数をカウントする何らかのハードウェアカウンターがあるかどうか、またはプログラムを監視してFPOの数を測定するために使用できる何らかのパフォーマンスツールが存在するかどうか、誰かが知っていますか. 提案や指針をいただければ幸いです。
以下は、カウンティング アプローチを使用した行列乗算の FLOP の評価です。最初に、関心のある各命令の挿入されたカウンターよりも実行時間を測定し、その後、1 秒あたりの浮動小数点演算の数を計算しました。
c# - C# で float を乗算するサイクル数
私は数値集中型のアプリケーションを使用しており、インターネットで GFLOPS を探した後、独自の小さなベンチマークを実行することにしました。約 1 秒の実行を得るために、シングル スレッドの行列乗算を何千回も実行しました。これは内側の loop.full です。
FLOPS を扱ってから何年も経っているので、FLOP ごとに約 3 ~ 6 サイクルになると予想していました。しかし、私は 30 (100 MFLOPS) を取得しています。これを並列化すると、さらに多くの値が得られますが、それは期待していませんでした。これは dot NET の問題でしょうか。それともこれは本当にCPUのパフォーマンスですか?
これは、完全なベンチマーク コードのフィドルです。
編集: Visual Studio はリリース モードでも実行に時間がかかります。実行可能ファイル自体は、FLOP あたり 12 サイクル (250 MFLOPS) で実行されます。それでも VM への影響はありますか?
performance - FLOPS にはどのような操作が含まれますか?
FLOPS は Floating-point Operations Per Second の略で、浮動小数点とは何かはある程度わかっています。これらのオペレーションが何であるかを知りたいですか? +, -, *, /
logarithm()、exponential() を取るような唯一の操作または操作は FLO でもありますか?
2つのフロートの+
とは同じ時間がかかりますか? *
そして、時間が異なる場合、次のステートメントからどのような解釈を引き出す必要がありますか:パフォーマンスは 100 FLOPSです。1 秒間にいくつあります+
か。*
私はコンピューター サイエンスの専門家ではありません。また、私がそれを完全に間違って理解しているかどうかも教えてください。
ありがとう
intel - フロップ測定
intel vtune Amplifier を使用してアプリケーションの FLOPS を推定しようとしています。この投稿をガイドラインとして使用しています: https://software.intel.com/en-us/articles/estimating-flops-using-event-ベース-サンプリング-ebs/
問題は、vtune GUI で FP_COMP_OPS_EXE イベントが見つからないことです。このイベント構成で amplxe-cl を実行すると、次のエラーが発生します。
amplxe: エラー: 無効なイベント FP_COMP_OPS_EXE.X87 が破棄されました。
私はCentOSで作業しており、プロセッサはIntel Xeonです
どんな助けでもいただければ幸いです