-3

通过调用 _mm_stream_si64x() 实现性能提升的示例程序是什么?

关于 _mm_stream_si64x 的 MSDN 文章:http: //msdn.microsoft.com/en-us/library/35b8kssy.aspx

4

2 回答 2

1

就像参考资料所说, _mm_stream_si64x 内部直接写入 Dest 指向的内存位置,而不将 Dest 写入缓存。因此,如果您想将数据复制到 Dest 指针,但不打算在很久以后从 Dest 指针访问数据,那么这个内在函数将比等效的 _mm_stream_si64 内在函数“实现性能提升”。

于 2012-04-03T21:46:59.370 回答
1

这是一个示例,假设源和目标足够大:

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

于 2012-04-03T22:00:40.583 回答