我正在使用 sde(英特尔的模拟器)来运行 avx512 代码,并且没有实际的硬件来进行基准测试。
出于某种原因,我找不到有关压缩+存储和压缩存储之间的性能比较的信息。
压缩+存储将存储整个寄存器,而不仅仅是选定的元素,但我对此很满意。而 compressstore 必须屏蔽未选定的元素。
什么是更好的?据我所知,英特尔网站上没有延迟信息。
最佳答案
更新:AMD - ZEN4。据此:https://www.mersenneforum.org/showthread.php?p=614191 compressstoreu 的 ZEN4 性能非常差,因此如果代码可能在 AMD 上运行,则应避免使用 compressstoreu。
我发现了一个稍微错误的地方:压缩指令仅适用于 epi32 并且有延迟:
_mm256_mask_compress_epi32
延迟为 6
_mm256_mask_compressstoreu_epi32
延迟为 11
其他的似乎需要 VBMI2,这在我的目标上不可用。
看来压缩+存储
应该更好。
关于simd - 哪个更好? mask_compress + store 或 mask_compressstoreu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69247880/