2013-03-12 68 views
1

我指的是英特尔至强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| 

?有没有其他方法可以实现这一点?

+0

Larrabee不死? – Mysticial 2013-03-12 07:39:04

+0

是的,我不认为Larrabee是适合它的词。我认为OP是指最近刚刚发布的Xeon Phi架构。我还没有看到太多的信息。 [这是一个链接到它的指令集参考](http://software.intel.com/sites/default/files/forum/278102/327364001en.pdf)。看起来它有一些非常强大的功能。 – 2013-03-12 12:21:27

+1

他们几乎是一回事。 – 2013-03-12 13:08:54

回答

1

从英特尔论坛(由尤金尼Petrov的回答)得到这个:

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

其中“地址”是在存储器中的位置,从中我们加载的双打到载体“A”的地址。

我们可以为V2,V3,V4做类似的操作,通过使用分别&(ADDR + 2),&(ADDR + 4)和&(ADDR + 6)。