_mm_stream_si64x() を呼び出すことでパフォーマンスの向上を実現するサンプル プログラムは何ですか?
_mm_stream_si64x に関する MSDN の記事: http://msdn.microsoft.com/en-us/library/35b8kssy.aspx
_mm_stream_si64x() を呼び出すことでパフォーマンスの向上を実現するサンプル プログラムは何ですか?
_mm_stream_si64x に関する MSDN の記事: http://msdn.microsoft.com/en-us/library/35b8kssy.aspx
リファレンスにあるように、_mm_stream_si64x 組み込み関数は、Dest をキャッシュに書き込むことなく、Dest が指すメモリ位置に直接書き込みます。したがって、データを Dest ポインターにコピーしたいが、Dest ポインターからデータにアクセスする予定がずっと後になる場合、この組み込み関数は、同等の _mm_stream_si64 組み込み関数よりも「パフォーマンスが向上します」。
ソースと宛先が十分に大きいと仮定した例を次に示します。
const char *source;
char *destination;
for (size_t offset= 0; offset<100*1024*1024; offset+= 64)
{
*(__int64 *)(destination + offset)= *(__int64 *)(source + offset);
}
を使用する代わりに手動でこれを行うと_mm_stream_si64x
、効果的にキャッシュがフラッシュされます。