コードが L2 キャッシュからできるだけフラッシュされないようにしたいと考えています。
C++ / C# でそれをどのように達成し、どのように責任を負わせますか。
編集:代わりにL2キャッシュミスの数を収集できますか? 回答: はいWindows プラットフォームで各プロセスの L2 キャッシュ ミス カウントを取得できますか?
コードが L2 キャッシュからできるだけフラッシュされないようにしたいと考えています。
C++ / C# でそれをどのように達成し、どのように責任を負わせますか。
編集:代わりにL2キャッシュミスの数を収集できますか? 回答: はいWindows プラットフォームで各プロセスの L2 キャッシュ ミス カウントを取得できますか?
人々はこの分野の情報を提供することに消極的であるようです (c++ または c# は関係ありません)。そのため、厳格なルールやレシピのセットではなく、一連のアプローチを使用する独自の戦略を作成する必要があるでしょう。
Windows アプリケーションの最大ヒット/ミス率を達成するには、おそらく次のようにします。
この質問は、最新の x86 CPU でキャッシングがどのように機能するかについての誤解に基づいているようです。たとえば、「L3 ではなく L2」と表示されます。最近のほとんどすべての x86 CPU (Intel と AMD の両方) では、L3 キャッシュの代わりに L2 キャッシュにデータを格納することはできません。L3 キャッシュにデータが存在しないと、L2 キャッシュにデータが存在しないことを示し、コアが他のコアにデータがキャッシュされていないと見なすことができるため、これによりキャッシュ コヒーレンシが失敗します。
率直に言って、CPU がどのように機能するかをよく知らない人は、キャッシュ内のデータを制御しようとするべきではありません。そもそもそれらの CPU を設計した人々よりも優れたものを作っていたら、それは奇跡です。