通过调用 _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
,则可以有效地刷新缓存。