1
GCCはプリフェッチをサポートするために__builtin_prefetch
を持っています。私の質問は、特定のレベルのキャッシュにデータをプリフェッチする方法です。たとえば、データを先読みしてL2 cache
にしたいのではなく、L1 cache
に転送します。特定のレベルのキャッシュにプリフェッチ
GCCはプリフェッチをサポートするために__builtin_prefetch
を持っています。私の質問は、特定のレベルのキャッシュにデータをプリフェッチする方法です。たとえば、データを先読みしてL2 cache
にしたいのではなく、L1 cache
に転送します。特定のレベルのキャッシュにプリフェッチ
__builtin_prefetchには3つの引数があります。 3番目はキャッシュレベルです。 AFAICTでは、これはSSEにのみ影響し、プリフェッチ、プリフェッチ1、プリフェッチ2、プリフェッチ3が生成されます。
ああ、私はそれを知らなかった。もちろんそれはより良い方法です。 –
ええと、プリフェッチのみ偶数ビット... :) –
一般的にはできません。ほとんどのCPUアーキテクチャは、この種の明示的なキャッシュ管理をサポートしていません。 –