Xeon Phi 中的分散/聚集

Posted

技术标签:

【中文标题】Xeon Phi 中的分散/聚集【英文标题】:Scatter/Gather in Xeon Phi 【发布时间】:2013-03-12 07:33:40 【问题描述】:

我参考了英特尔关于 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|

使用这些说明?有没有其他方法可以做到这一点?

【问题讨论】:

是的,我认为 Larrabee 不适合这个词。我认为 OP 指的是最近刚刚发布的 Xeon Phi 架构。我还没有看到太多的信息。 Here is a link to its instruction set reference。看起来它有一些非常强大的功能。 它们几乎是一回事。 【参考方案1】:

从英特尔论坛获得此信息(由 Evgueni Petrov 回答):

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

其中“Addr”是内存中位置的地址,我们将双精度值从该地址加载到向量“A”中。

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

【讨论】:

以上是关于Xeon Phi 中的分散/聚集的主要内容,如果未能解决你的问题,请参考以下文章

如果在 Xeon Phi 上编译时不知道循环计数,则性能下降

比较 Intel Xeon Phi 和 Nvidia Tesla K20 的基准

在 xeon-phi 上引导自定义内核

Xeon-Phi 从主机 openMP 并行区域异步卸载

无法解释的 Xeon-Phi 开销

如何检测 Xeon Phi (Knights Landing)