Count Up

Submission Date: 2024/9/23 23:27:51
Status: Accepted
Author: long_long_float
Lines: 100

VSM

# 使
# * mvr
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L2BM%E2%86%92DRAM%20ingroup-reduce&movie=mvr2%2Fn64%20%24lc0%20%24d0&frame=1
# * 64
# * mvr2ibor/n32768 $lc0 $d0
#
# 32768 L2BM(32Ki)
#
# 32768(10) = 8000(16) = 1000 0000 0000 0000 (2) 16bit
# {GroupxL2B $l2bid (3bit), L1B $l1bid (3bit), MABxPE $peid (6bit), local 16 elements (4bit)}
# {Group $l2bid>>1 (2bit), MAB&0x3 (2bit), local 4 elements (2bit), MAB $mabid/4 (4-2=2bit), L1B $l1bid (3bit), local 2 elements (1bit), PE $subpeid (2bit), local 2 elements (1bit)}
#
# * MAB -> L1BM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=MAB4x4%E2%86%92L1BM%20single-unicast&movie=l1bmm4%400%20%24lp0%20%24lb0&frame=1
# * 2 * 4 Cycle * 2 = 16 elements
# * L1BM -> L2BM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L1BM%E2%86%92L2BM%20concat&movie=l2bmd%20%24lb0%20%24lc0&frame=1
# * 8 * 4 L1Bs * 4 Cycle * 2 = 256 elements
# * L2BM -> DRAM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L2BM%E2%86%92DRAM%20single-unicast&movie=mvp%2Fn64%20%24lc0%400.1%20%24d0%400&frame=1
#
# * DRAM使?
#
# : $peidL2BM
# Group $l2bid>>1
imm i"1" $t
uilsr $l2bid $aluf $lr0v
uilsr $l2bid $t $lr8v
# MAB & 0x3
imm i"2" $t
uilsl $lr0v $aluf $lr0v
uilsl $lr8v $t $lr8v
imm i"0x3" $t
iand $mabid $aluf $ls0v
ior $aluf $lr0v $lr0v
iand $mabid $t $ls8v
ior $aluf $lr8v $lr8v
# local 4 elements
# $ls = [0, 0, 1, 1, 2, 2, 3, 3]
zero $ls0v
iinc $aluf $ls0v/0011
nop
ipassa $ls0v $ls8v
iinc $aluf $ls8v
iinc $aluf $ls8v
nop
imm i"2" $t
uilsl $lr0v $aluf $lr0v
ior $aluf $ls0v $lr0v
uilsl $lr8v $t $lr8v
ior $aluf $ls8v $lr8v
# MAB/4
imm i"2" $t
uilsl $lr0v $aluf $lr0v
uilsl $lr8v $t $lr8v
imm i"2" $t
uilsr $mabid $aluf $ls0v
ior $aluf $lr0v $lr0v
uilsr $mabid $t $ls0v
ior $aluf $lr8v $lr8v
# L1B
imm i"3" $t
ilsl $lr0v $aluf $lr0v
ior $l1bid $aluf $lr0v
ilsl $lr8v $t $lr8v
ior $l1bid $aluf $lr8v
# Local 2 elements
zero $ls0v
iinc $aluf $ls0v/0101
zero $ls8v
iinc $aluf $ls8v/0101
imm i"1" $t
ilsl $lr0v $aluf $lr0v
ior $ls0v $aluf $lr0v
ilsl $lr8v $t $lr8v
ior $ls8v $aluf $lr8v
# PE
imm i"2" $t
ilsl $lr0v $aluf $lr0v
ior $subpeid $aluf $lr0v
ilsl $lr8v $t $lr8v
ior $subpeid $aluf $lr8v
# Local 2 elements
imm i"1" $t
ilsl $lr0v $aluf $lr0v
ilsl $lr8v $t $lr8v
nop
# TODO: Uncomment later
iinc $lr0v $lr0v
iinc $lr8v $lr8v
nop
iinc $r[1,3,5,7] $r[1,3,5,7]
iinc $r[9,11,13,15] $r[9,11,13,15]
nop
l1bmm4@0 $llr0v $llb0
l1bmm4@1 $llr0v $llb160
l1bmm4@2 $llr0v $llb320
l1bmm4@3 $llr0v $llb480
l2bmd $lb0 $lc0
l2bmd $lb32 $lc256
l2bmd $lb64 $lc512
l2bmd $lb96 $lc768
l2bmd $lb128 $lc1024
mvp/n1024 $lc0@0.0 $d0@0
mvp/n1024 $lc0@1.0 $d4096@0
mvp/n1024 $lc0@2.0 $d8192@0
mvp/n1024 $lc0@3.0 $d12288@0
l2bmd $lb160 $lc0
l2bmd $lb192 $lc256
l2bmd $lb224 $lc512
l2bmd $lb256 $lc768
l2bmd $lb288 $lc1024
mvp/n1024 $lc0@0.0 $d1024@0
mvp/n1024 $lc0@1.0 $d5120@0
mvp/n1024 $lc0@2.0 $d9216@0
mvp/n1024 $lc0@3.0 $d13312@0
l2bmd $lb320 $lc0
l2bmd $lb352 $lc256
l2bmd $lb384 $lc512
l2bmd $lb416 $lc768
l2bmd $lb448 $lc1024
mvp/n1024 $lc0@0.0 $d2048@0
mvp/n1024 $lc0@1.0 $d6144@0
mvp/n1024 $lc0@2.0 $d10240@0
mvp/n1024 $lc0@3.0 $d14336@0
l2bmd $lb480 $lc0
l2bmd $lb512 $lc256
l2bmd $lb544 $lc512
l2bmd $lb576 $lc768
l2bmd $lb608 $lc1024
mvp/n1024 $lc0@0.0 $d3072@0
mvp/n1024 $lc0@1.0 $d7168@0
mvp/n1024 $lc0@2.0 $d11264@0
mvp/n1024 $lc0@3.0 $d15360@0
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=100 j=84 m=16 bytes=2045
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# 使
# * mvr
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L2BM%E2%86%92DRAM%20ingroup-reduce&movie=mvr2%2Fn64%20%24lc0%20%24d0&frame=1
# * 64
# * mvr2ibor/n32768 $lc0 $d0
#
# 32768 L2BM(32Ki)
#
# 32768(10) = 8000(16) = 1000 0000 0000 0000 (2) 16bit
# {GroupxL2B $l2bid (3bit), L1B $l1bid (3bit), MABxPE $peid (6bit), local 16 elements (4bit)}
# {Group $l2bid>>1 (2bit), MAB&0x3 (2bit), local 4 elements (2bit), MAB $mabid/4 (4-2=2bit), L1B $l1bid (3bit), local 2 elements (1bit), PE $subpeid (2bit), local 2 elements (1bit)}
#
# * MAB -> L1BM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=MAB4x4%E2%86%92L1BM%20single-unicast&movie=l1bmm4%400%20%24lp0%20%24lb0&frame=1
# * 2 * 4 Cycle * 2 = 16 elements
# * L1BM -> L2BM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L1BM%E2%86%92L2BM%20concat&movie=l2bmd%20%24lb0%20%24lc0&frame=1
# * 8 * 4 L1Bs * 4 Cycle * 2 = 256 elements
# * L2BM -> DRAM
# * https://mncore-challenge.preferred.jp/memory-animation/?file=L2BM%E2%86%92DRAM%20single-unicast&movie=mvp%2Fn64%20%24lc0%400.1%20%24d0%400&frame=1
#
# * DRAM使?
#
# : $peidL2BM
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX