1

我指的是英特尔关于 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|

使用这些说明?有没有其他方法可以实现这一目标?

4

1 回答 1

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 做类似的操作。

于 2013-03-14T06:37:08.207 回答