gpt4 book ai didi

assembly - AVX-512中的压缩和扩展指令之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 07:48:57 29 4
gpt4 key购买 nike

我正在研究Intel intrinsics guide的展开和压缩操作。我对这两个概念感到困惑:
对于__m128d _mm_mask_expand_pd (__m128d src, __mmask8 k, __m128d a) == vexpandpd

Load contiguous active double-precision (64-bit) floating-point elements from a (those with their respective bit set in mask k), and store the results in dst using writemask k (elements are copied from src when the corresponding mask bit is not set).


对于 __m128d _mm_mask_compress_pd (__m128d src, __mmask8 k, __m128d a) == vcompresspd

Contiguously store the active double-precision (64-bit) floating-point elements in a (those with their respective bit set in writemask k) to dst, and pass through the remaining elements from src.


有没有更清晰的描述或可以解释更多的人?

最佳答案

这些指令实现了APL运算符\(扩展)和/(压缩)。 Expand取一个设置了n个m≥n位的位掩码α和一个n个数字的数组ω,并返回m个数的向量,其中ω中的数字插入到由α表示的位置,其余的设置为零。例如,

0 1 1 0 1 0 \ 2 3 4

退货
0 2 3 0 4 0
_mm_mask_expand_pd指令针对固定的m = 8实现此运算符。

压缩操作取消了扩展操作的效果,即,它使用位掩码α从ω中选择条目,并将这些条目连续存储到内存中。

关于assembly - AVX-512中的压缩和扩展指令之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51242525/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com