問題タブ [papi]
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 - C コードのベンチマーク - フラッシュ キャッシュ
Linux x86を使用してc内でキャッシュフラッシュを強制できるかどうか疑問に思っています。シェル内または asm/cache.h を使用してこれを行う方法に答えるいくつかの回答を読みました(Linuxモジュールを作成する必要があります...)
私は PAPI ライブラリを使用しています。これにより、特定のコード ブロックの実行に必要な正確なクロック サイクル数に非常に近づけることができます。ただし、いくつかの非常に短い関数の時間を測定したいので、正確な統計を得るために関数を何度も実行する必要があります (タイミング関数呼び出しは、ブロック内のコードの実行にかかる時間よりも長くかかります)。コードを複数回実行することで、キャッシュは同じコード ブロックの連続呼び出しの実行を高速化します。これを防止したいと考えています。
linux - CPU にあるハードウェア パフォーマンス カウンターの数を調べる
Linux を実行している Intel または AMD x86-64 システムで、CPU が持つハードウェア パフォーマンス カウンターの数はどこでどのように確認できますか?
perf
Linuxツールを使用して、アプリケーションの実行中にハードウェア パフォーマンス カウンター データを収集したいと考えています。perf wiki のチュートリアルによると、CPU にあるパフォーマンス カウンターよりも多くのハードウェア イベントを ( orに-e
フラグを使用して) 指定すると、これらのイベントは実行中にカウンター上で多重化され、1 回の実行中にすべてを追跡できるようになります。ただし、すべてのカウンターが常にアクティブであるとは限らないため、精度が低下する可能性があります。(ここでは、キャッシュや TLB の動作などのハードウェア イベントに関心があることに注意してください。多数の/無制限の数のカーネル ソフトウェア トレースポイントを正確に追跡できることはわかっています)。perf stat
perf record
perf
プロセッサのモデルがわかった場合、この情報を確認できる Intel/AMD の Web サイトはありますか? ハードウェア カウンターの数を確認するためにシステムで実行できる簡単なコマンドはありますか? cat /proc/cpuinfo
との出力を調べましたが、x86info -a
この情報は見つかりませんでした。
performance - papi_test.h: ファイルまたはディレクトリがありません
PAPI コードを既に実行中のコードにアタッチしようとしましたが、コンパイル時にエラー papi_test.h : no such file or directory が発生します
papi-5.3.0/src/ctests フォルダー内のファイル attach_target.c をコンパイルしても、同じエラーが発生します。PAPI を使用して既に実行中の C コードを監視し、それにカウンターを追加したいと考えています。
c - System() のパフォーマンス
c の関数 system() について、実行したコマンドがどのように実行されたかを確認しようとすると、ハードウェア カウンターに影響しますか?
私は明らかに少し欠けていますが、私が見つけようとしているのは、上記のカウンターを使用して、実行中のプログラムのパフォーマンスを取得できることです。私のテストから、以下のようなワイルドナンバーが得られます。それらは明らかに間違っています。理由を知りたいだけです
c - Sandy Bridge での整数演算のカウント
コードの計算強度を計算したいのですが、 ではなく で機能しintegers
ますfloats
。PAPI で演算回数をカウントすることを考えましたが、ハードウェアは整数演算のカウンターを提供しません。これどうやってするの?