1

Xeon Phi命令セットに関するIntelのマニュアルを参照していましたが、スキャッター/ギャザー命令がどのように機能するかを理解できませんでした。

次のdoubleのベクトルがあるとします。

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

Intelフォーラムからこれを入手しました(Evgueni Petrovが回答):

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

ここで、「Addr」はメモリ内の場所のアドレスであり、そこからdoubleをベクトル「A」にロードしました。

&(Addr + 2)、&(Addr + 4)、&(Addr + 6)をそれぞれ使用して、V2、V3、V4に対して同様の操作を行うことができます。

于 2013-03-14T06:37:08.207 に答える