UL 256

top Top: -

par Par: 29 lines

Problem Statement

LM に ((4_L2B:2, 32:1, 2_W:1)) のレイアウトで分割されて配置された長さ \(256\) の Float Vector \(L\) を、DRAM にある Vector \(D\) に指定のレイアウトで格納してください。

Explanation

DL 256 の反対方向の問題です。Download 操作の逆に対応した命令があるので、それを使います…、と言いたいところですが、l1bmpPE 放送命令)の逆操作に相当する命令はありません。

なんとか頑張りましょう。

考え方・方針

l1bmp の逆操作にあたるような、1 PE から連続したメモリを L1BM に転送する命令は存在せず、必ず 4 PE が同時に転送されます。

そこで、4 PE で共有で、レイアウトの転置が行える行列レジスタを使った転置命令を使うことで、1 PE のメモリを 4 PE の先頭に移動することができます。

その状態で、長語 16x1 個別転送命令 l1bmm@0 を使うことで、L1BM の先頭 4 長語に、PE0 の 4 長語を転送することができます。

なお、倍精度の dmwrite, dmread を使用しないと、例えば f(mwrite|mread) を使用すると、長語内の (2_W) も転置されてひっくり返ってしまいます。

まとめると、

で実現できます。

Inputs

Outputs

Testcases

testcase.vsm

Submission

ログイン / 新規登録