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

What is an example program that realizes a performance gain by calling _mm_stream_si64x()?

本文关键字:性能 实现 程序 例程 调用 mm si64x stream 什么      更新时间:2023-10-16

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

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

这里有一个例子,假设源和目的地足够大:

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

正如引用所说,_mm_stream_si64x内在写入Dest直接指向的内存位置,而不将Dest写入缓存。因此,如果您想将数据复制到Dest指针,但在很久以后才计划从Dest指针访问数据,那么此内部函数将比等效的_mm_stream_si64内部函数"实现性能提升"。