問題タブ [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.
performance - FLOP/s とは何ですか? それはパフォーマンスの適切な尺度ですか?
マルチ CPU システムで微分方程式を解く Fortran プログラムのパフォーマンスを測定するよう依頼されました。私の雇用主は、私が FLOP/s (Floating operations per second) を測定し、その結果をベンチマーク ( LINPACK ) と比較することを主張していますが、誰も私に FLOP が何であるかを説明できないという理由だけで、それが正しい方法であるとは確信していません。
私は FLOP とは何かについて調査を行いましたが、かなり矛盾した答えが得られました。私が得た最も人気のある答えの 1 つは、「1 FLOP = 加算と乗算演算」でした。本当?もしそうなら、物理的に、それは正確には何を意味するのでしょうか?
最終的に使用する方法が何であれ、それはスケーラブルでなければなりません。コードの一部のバージョンは、数百万の未知数を持つシステムを解決し、実行に数日かかります。
私の場合、パフォーマンスを測定する他の効果的な方法は何でしょうか(私の場合の要約は、「数百のCPUで何日も何度も何度も多くの算術計算を行うfortranコードです)?
floating-point - 浮動小数点加算と浮動小数点乗算の相対速度は?
10 ~ 20 年前は、乗算と除算を使用せずに加算と減算を使用する数値コードを記述することは価値がありました。良い例は、多項式を直接計算する代わりに、前方差分を使用して多項式曲線を評価することです。
これは今でも当てはまりますか、それとも現代のコンピューター アーキテクチャは、*,/ が +,- よりも何倍も遅くないところまで進歩していますか?
具体的には、ソフトウェアで FP を実行しようとする小さなマイクロではなく、広範なオンボード浮動小数点ハードウェアを備えた最新の典型的な x86 チップで実行されるコンパイル済みの C/C++ コードに興味があります。パイプライン処理やその他のアーキテクチャの強化により、特定のサイクル カウントが妨げられていることは理解していますが、有用な直感を得たいと思っています。
c - FLOPS 実際の FLOPS とは
私はこのスレッドから来ました:FLOPS IntelコアとCでのテスト(内部積)
簡単なテスト スクリプトを書き始めたとき、いくつかの疑問が頭に浮かびました。
なぜ浮動小数点?考慮しなければならない浮動小数点の重要な点は何ですか? 単純な int ではないのはなぜですか?
FLOPS を測定したい場合、2 つのベクトルの内積を計算しているとします。2 つのベクトルは float[] でなければなりませんか? int[] を使用すると測定値はどのように変化しますか?
私は Intel アーキテクチャに詳しくありません。次の操作があるとします。
これはいくつの「浮動小数点演算」ですか?
単純化された 32 ビット MIPS アーキテクチャを調べたので、少し混乱しています。すべての命令には、オペランド 1 に 5 ビット、オペランド 2 に 5 ビットなどの 32 ビットがあるため、Intel アーキテクチャ (具体的には前のスレッドと同じアーキテクチャ) の場合、レジスタは 128 ビットを保持できると言われました。SINGLE PRECISION 浮動小数点の場合、浮動小数点数ごとに 32 ビットですが、これは、プロセッサに供給される命令ごとに 4 つの浮動小数点数を使用できることを意味しますか? オペランドや命令の他の部分に含まれるビットも考慮する必要があるのではないでしょうか? これに特定の意味を持たずに、どうすれば4つの浮動小数点数をCPUに供給することができますか?
すべてをバラバラに考えるという私のアプローチが理にかなっているのかどうかはわかりません。そうでない場合、視点のどの「高さ」を見ればよいですか?
linux - 並行性の高いマルチスレッド アプリケーションにはハードウェアが必要
24 時間モードで約 256 の計算集約型リアルタイム同時タスクを実行する必要があるハードウェアを探しています (1 つのマルチスレッド C アプリケーション)。各タスクには約 40 ~ 50 MFLOP かかるため、すべてのタスクには約 10 GFLOP が必要です。CPU-RAM の速度は重要ではありません。すべてのタスクは Linux カーネル (32 ビット、SMP 付き) で管理する必要があります。
1 つのマルチコア CPU を備えた 1 つのメインボード ソリューションを探しています (そのような CPU が存在する場合)。そのような CPU が存在しない場合は、1 つのマルチソケット メインボード ソリューション (複数の CPU を使用) が必要です。
このような要件を満たすプロフェッショナル向けの CPU/メインボード ソリューションを教えてください。Linux カーネル (2.6.25) に問題がないことも非常に重要です。仮想化も、巨大な RAM や CPU キャッシュも必要ありません。また、Intel アーキテクチャと実績のある安定性も好みます。私はまだそれが実現可能かどうか疑問に思っています。
前もって感謝します。
cuda - プログラムで FLOPS/GFLOPS をカウントする - CUDA
CRS 行列とベクトル (SpMV) を乗算するアプリケーションは既に終了しています。あとは、アプリケーションが実行した FLOPS をカウントするだけです。私の意見では、スパース行列の場合の浮動小数点演算の数を見積もるのは本当に難しいです-ベクトル乗算。
「cudaprof」(./CUDA/binディレクトリで利用可能)を使用して時間を測定しようとしただけで、正常に動作します。
どんな提案や指示の貼り付けも大歓迎です!
floating-point - 算術否定は浮動小数点演算としてカウントされますか?
現在、FLOPSでいくつかのコードのパフォーマンスを測定しています。このコードは、次のような算術否定命令を示します。
ここでd
、およびa
は浮動小数点変数です。私が現在使用しているアーキテクチャには、特定の否定命令があります。FLOPSを測定するには、この種の操作を考慮する必要がありますか?FLOPSの原因となる操作はどのようなものですか?コンベンションなどはありますか?
cpu - RFID タグにはプロセッサがありますか?
RFID タグには、単純な計算が可能な「実際の」プロセッサがありますか? もしそうなら、今日の RFID プロセッサの処理能力はどれくらいですか?
c - プロセッサのギガフロップス
私のコンピューターに NVIDIA CUDA テクノロジが搭載されていることを発見し、CPU と GPU の処理能力を測定したいと考えています。
これを行うプログラムを探すのではなく、それがどのように機能するかをより深く理解したいと思っています。どのようなコード (C/C++) が必要ですか?
architecture - フロップとして何がカウントされますか?
疑似的に次のようなCプログラムがあるとします。
このためのFLOPSの数は(1 [x ++] + 1 [x * 5] + 1 [2 +(x + 5))] * 10 [loop]、30 FLOPSの場合ですか?フロップが何であるか理解するのに苦労しています。
[...]は、「操作」のカウントをどこから取得しているかを示していることに注意してください。
c - CPU FLOPをテストするためにCPUで実行されるようにmakefile CUDAを作成する方法は?
GPU と CPU の FLOP をカウントしようとしていますが、ここからソースを入手しました
名前を cudaflops.cu に変更し、この makefile でコンパイルしました
Tt は正常に動作し、結果として 367 GFIOPS が得られます
しかし今、私はこのソースを CPU でテストする方法を知りません。これを読んで、ソースは CPU 上で実行できると書かれていました。
では、修正されたメイクファイルはどのようにそれを行うのでしょうか??