AVX512中“屏蔽”存储的粒度是多少?

问题描述

假设您调用 _mm512_mask_store_ps ,从CPU的写缓冲区的角度来看,它是作为 size 64字节的存储区执行的(某种形式的掩码)还是在内部作为多个大小为4个字节的存储区执行?

为了防止存储到负载转发停顿,必须使存储的粒度(大小)与后续到同一内存位置的负载的粒度相匹配。 希望这个问题有意义,我不是CPU架构专家。

解决方法

Iwillnotexist所引用:

如果掩码不是全为1或全为0,则取决于掩码的载荷 存储必须等到将存储数据写入高速缓存。如果 掩码全为1,可以将数据从掩码存储转发到 相关负载。如果掩码全为0,则负载不依赖于 蒙面的商店。

因此,除了掩码为全1(行为类似于常规存储)或全为零(平凡)的情况之外,没有对掩码存储进行存储到加载的转发。 屏蔽存储区通常在等待数据发送到缓存后才加载,因此它应该非常昂贵。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...