Xeon Phi中的分散/聚集

时间:2013-03-12 07:33:41

标签: vectorization sse avx intel-mic xeon-phi

我指的是Xeon Phi指令集上的英特尔手册,但无法理解散布/收集指令的工作原理。

假设我有以下双打矢量:

A-> |b4|a4|b3|a3|b2|a2|b1|a1|

是否可以按如下方式创建4个向量:

V1->|b1|a1|b1|a1|b1|a1|b1|a1|
V2->|b2|a2|b2|a2|b2|a2|b2|a2|
V3->|b3|a3|b3|a3|b3|a3|b3|a3|
V4->|b4|a4|b4|a4|b4|a4|b4|a4|

使用这些说明?还有其他方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:1)

来自英特尔论坛(由Evgueni Petrov回答):

__m512d V1 = (__m512d)_mm512_extload_epi32(&Addr, _MM_UPCONV_EPI32_NONE, _MM_BROADCAST_4X16, _MM_HINT_NONE);

其中'Addr'是内存中位置的地址,我们从中将双打加载到矢量'A'。

我们可以分别使用&(Addr + 2),&(Addr + 4)和&(Addr + 6)对V2,V3,V4进行类似的操作。