Top: -
Par: 74 lines
DRAM に分割されて配置された shape = (256, 1024) の Float Tensor \(D\) を、
LM にある Tensor \(L\) に((8_L2B:1, 32:1), (8_MAB:2, 8_L1B:1, 2_MAB:1, 4_PE:1, 2_W:1))のレイアウトで格納してください。
レイアウトを見ると、L2B, L1B, MAB, PE のすべてが含まれているので、各 L2B, L1B, MAB, PE に分配することが分かります。
使用する命令は以下のとおりです。
mvp/n16384 $d0 $lc0@.0 DRAM → L2BM 並列個別転送命令 mvpl2bmd $lc0 $lb0 L2BM → L1BM 分配命令 l2bmdl1bmd $lb0 $lm0v (PE) 分配命令 l1bmdを使います。
各 DRAM にそれぞれ \(32768\) 長語と大量の値が配置され、分配しながら下ろしていくとは言え、l2bmd 命令を \(64\) 回、l1bmd 命令を \(8\) 回発行する必要があり、最終的に各 PE に \(64\) 単語を分配します。
$d[0:32768]@0, (256,1024)/((4_L2B:2, 64:512), (512:1, 2_W:1); B@[4_L2B:2])
$lm[0:64], (256,1024)/((8_L2B:1, 32:1), (8_MAB:2, 8_L1B:1, 2_MAB:1, 4_PE:1, 2_W:1))