Mmul TA D 16_256_1024 ★

top Top: -

par Par: 140 lines

Problem Statement

\(256 \times 16\) 行列 \(A\) と、\(256 \times 1024\) 行列 \(B\) に対して、行列積 \(C = A^T \times B\) (shape:\(16 \times 1024\)) を計算し、DRAMへ 出力してください。\(A,B\) のレイアウトは以下のとおりです。

A: ((8_L2B:1, 32:2), (2:1, 4_PE:1, 2_W:1)) B: ((8_L2B:1, 32:1), (8_MAB:2, 8_L1B:1, 2_MAB:1, 4_PE:1, 2_W:1))

Explanation

前回の問題 Mmul TA 16_32_8 のレイアウトは以下の通りでした。

A: ((32:2), (2:1, 4_PE:1, 2_W:1)) B: ((32:1), (4_PE:1, 2_W:1)) C: ((16:1), (4_PE:1, 2_W:1))

今回の問題では、\(A, B\) の 1 次元目に 8_L2B:1 とある通り、8 個の L2B に分散して配置されています。

また、\(B\) の 2 次元目に 8_MAB:2, 8_L1B:1, 2_MAB:1 が追加されています。これは \(B\) の 2 次元目が、8 個の L1B と 16 個の MAB に分散して配置されていることを示しています。

方針

今回の行列積は、\(1\) 次元目は縮約される次元なので、8 個の L2B 間で縮約を行う必要があります。

また、\(2\) 次元目は結合を行う次元なので、Mmul TA 16_32_8 を行って得られた \(16\times8\) 行列 ((16:1), (4_PE:1, 2_W:1)) を、16 個の MAB と 8 個の L1B 間で結合を行うことで、最終的に \(16\times1024\) 行列を得ることができます。

L2BM 間の縮約は、L2BM から PDM への縮約と、PDM から DRAM への転送に分けると良いでしょう。

縮約・結合で使用する具体的な命令

を使用します。

Inputs

Outputs

Testcases

testcase.vsm

Submission

ログイン / 新規登録