如何解决AVX512中“屏蔽”存储的粒度是多少?
假设您调用 _mm512_mask_store_ps ,从cpu的写缓冲区的角度来看,它是作为 size 64字节的存储区执行的(某种形式的掩码)还是在内部作为多个大小为4个字节的存储区执行?
为了防止存储到负载转发停顿,必须使存储的粒度(大小)与后续到同一内存位置的负载的粒度相匹配。 希望这个问题有意义,我不是cpu架构专家。
解决方法
Iwillnotexist所引用:
如果掩码不是全为1或全为0,则取决于掩码的载荷 存储必须等到将存储数据写入高速缓存。如果 掩码全为1,可以将数据从掩码存储转发到 相关负载。如果掩码全为0,则负载不依赖于 蒙面的商店。
因此,除了掩码为全1(行为类似于常规存储)或全为零(平凡)的情况之外,没有对掩码存储进行存储到加载的转发。 屏蔽存储区通常在等待数据发送到缓存后才加载,因此它应该非常昂贵。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。