1 在计算过程中不涉及输出内存的数据时,应使用_mm*_stream_*(直接写入内存)代替_mm*_store_*,例如:
for( i=0; i<256; i+=4 )
{
ymm0=_mm256_load_pd(a+i);
ymm1=_mm256_load_pd(b+i);
ymm2=_mm256_add_pd(ymm0,ymm1);
_mm256_stream_pd(c+i,ymm2);
}
若计算过程中还要使用输出内存中的数据,则应使用_mm*_store_*,例如:
1 在计算过程中不涉及输出内存的数据时,应使用_mm*_stream_*(直接写入内存)代替_mm*_store_*,例如:
for( i=0; i<256; i+=4 )
{
ymm0=_mm256_load_pd(a+i);
ymm1=_mm256_load_pd(b+i);
ymm2=_mm256_add_pd(ymm0,ymm1);
_mm256_stream_pd(c+i,ymm2);
}
若计算过程中还要使用输出内存中的数据,则应使用_mm*_store_*,例如: