simd - 哪个更好?mask_compress + store 或 mask_compressstoreu
问题描述
我正在使用 sde(英特尔的模拟器)来运行 avx512 代码,并且没有实际的硬件来进行基准测试。
出于某种原因,我找不到有关 compress + store 和 compressstore 之间性能比较的信息。
compress + store 将存储整个寄存器,而不仅仅是选定的元素,但我很好。而 compressstore 必须屏蔽未选择的元素。
什么是更好的?据我所知,英特尔网站上没有延迟信息。
解决方案
我看错了地方:压缩指令仅适用于 Epi32,并且有延迟:
_mm256_mask_compress_epi32
有延迟 6
_mm256_mask_compressstoreu_epi32
有延迟 11,其他似乎需要 VBMI2,这在我的目标上不可用。
所以看起来compress + store
应该更好。
推荐阅读
- javascript - 获取 iframe 的完整内容
- micronaut - 为什么调用bean的方法时不初始化可刷新bean?
- javascript - 时间线插件不显示事件
- javascript - 单击 one2many 字段和模型中的按钮记录更新后
- nestjs - NestJS - 从请求中获取当前用户并验证查询参数
- javascript - 从字符串数组中获取多个随机字符串
- c++ - 使用 long long int 时出现分段错误
- ffmpeg - FFMPEG - 降低帧率等
- linux - ubuntu 18.10 宇宙版的apt更新错误
- android-fragments - 如何使用 Dagger2.2 注入的不同 Repository 实现重用 Fragment 和 ViewModel