UL 256_16

top Top: -

par Par: 7 lines

Problem Statement

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

Explanation

PE の LM にある値を DRAM に転送する操作を、MN-Core 用語でアップロードと呼びます。問題名の UL は Upload の略です。

DL PE 256_16 の反対方向の問題です。Download 操作の逆に対応した命令があるので、それを使います。
考え方・方針

を使います。

MN-Core の命令は、同じオペコードで、オペランドの指定を変えることで、アップロードとダウンロードが切り替わるものが多いです。

例えば、DRAM → L2BM → L1BM の順に分配する

mvp/n256 $d0 $lc0@.0 mvp/n256 $d256 $lc0@.1 l2bmd $lc0 $lb0

の逆方向、L1BM → L2BM → DRAM の結合は

l2bmd $lb0 $lc0 nop mvp/n256 $lc0@.0 $d0 mvp/n256 $lc0@.1 $d256

のようになります。

L1BM → PE で MAB 放送(PE分配)を行うときは

l1bmm $llb0 $llm0v

のように行いました。放送の逆命令は縮約か個別転送になるので、個別転送命令で MAB 0 番の値を使うことにして、

l1bmm@0 $llm0v $llb0

を使うと良いでしょう。

(今回は縮約要素間すべて同じ値なので l1bmr 命令を使って l1bmrffmax のように最大値で縮約を行うことも一応可能ですが、個別転送の方が目的に合うでしょう)

Inputs

Outputs

Testcases

testcase.vsm

Submission

ログイン / 新規登録