1

Linux x86を使用してc内でキャッシュフラッシュを強制できるかどうか疑問に思っています。シェル内または asm/cache.h を使用してこれを行う方法に答えるいくつかの回答を読みました(Linuxモジュールを作成する必要があります...)

私は PAPI ライブラリを使用しています。これにより、特定のコード ブロックの実行に必要な正確なクロック サイクル数に非常に近づけることができます。ただし、いくつかの非常に短い関数の時間を測定したいので、正確な統計を得るために関数を何度も実行する必要があります (タイミング関数呼び出しは、ブロック内のコードの実行にかかる時間よりも長くかかります)。コードを複数回実行することで、キャッシュは同じコード ブロックの連続呼び出しの実行を高速化します。これを防止したいと考えています。

4

1 に答える 1

0

他のものをキャッシュにロードする以外に、これを行う標準的な方法はわかりません。私の通常の回避策は、行列の乗算など、キャッシュを「冷却」するのに十分な大きさのものを単純に処理することです。

于 2014-02-10T16:17:57.153 に答える