标签: clflush

使用函数 _mm_clflush 刷新大型结构的正确方法

我开始使用_mm_clflush_mm_clflushopt和 等函数_mm_clwb

现在说我已经定义了一个结构体名称 mystruct ,它的大小是 256 字节。我的缓存行大小是 64 字节。现在我想刷新包含 mystruct 变量的缓存行。以下哪种方法是正确的方法?

_mm_clflush(&mystruct)
Run Code Online (Sandbox Code Playgroud)

或者

for (int i = 0; i < sizeof(mystruct)/64; i++) {

     _mm_clflush( ((char *)&mystruct) + i*64)

}
Run Code Online (Sandbox Code Playgroud)

c x86 sse2 cpu-cache clflush

2
推荐指数
1
解决办法
1180
查看次数

标签 统计

c ×1

clflush ×1

cpu-cache ×1

sse2 ×1

x86 ×1