2013-03-12 66 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)。