Matrix Square

Submission Date: 2024/9/10 9:08:00
Status: Accepted
Author: naoya_t
Lines: 74

VSM

imm f"0.001953125" $ls500 $lr500
imm f"512" $ls502 $lr502
#
hmwrite $llm0vr $lx0
hmwrite $llm16vr $lx4
hmwrite $llm32vr $lx8
hmwrite $llm48vr $lx12
hmread $llx0 $llm200v
hmread $llx8 $llm216v
nop/2
# bf
hbfn/9 $llm200v $llr200v
hbfn/9 $llm216v $llr216v
hmwrite $llr200v $llx0 ; hbfn/9 $llm0vr $lr0v
hmwrite $llr216v $llx8 ; hbfn/9 $llm16vr $lr8v
# hbfn/9 $llm0vr $lr0v
# hbfn/9 $llm16vr $lr8v
hbfn/9 $llm32vr $lr16v ; hmmul $lx $lr0v $lls0v
hbfn/9 $llm48vr $lr24v ; hmmul $lx $lr4v $lls8v
# H x H -> F
# hmmul $lx $lr0v $lls0v
# hmmul $lx $lr4v $lls8v
hmmul $lx $lr8v $lls16v
hmmul $lx $lr12v $lls24v
hmmul $lx $lr16v $lls32v
hmmul $lx $lr20v $lls40v
hmmul $lx $lr24v $lls48v
hmmul $lx $lr28v $lls56v
# y.T = [lls0..64]
#----------
# 9bit
fvmul $ls0v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr200v
fvadd $ls0v -$mauf $lr0v
fvmul $ls8v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr208v
fvadd $ls8v -$mauf $lr8v
fvmul $ls16v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr216v
fvadd $ls16v -$mauf $lr16v
fvmul $ls24v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr224v
fvadd $ls24v -$mauf $lr24v
fvmul $ls32v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr232v
fvadd $ls32v -$mauf $lr32v
fvmul $ls40v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr240v
fvadd $ls40v -$mauf $lr40v
fvmul $ls48v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr248v
fvadd $ls48v -$mauf $lr48v
fvmul $ls56v $lr500 $lm0v
ffloor $mauf $nowrite
fvmul $aluf $lr502 $lr256v
fvadd $ls56v -$mauf $lr56v
# 9bit
hmwrite $llr0vr $lx0
hmwrite $llr16vr $lx4
hmwrite $llr32vr $lx8
hmwrite $llr48vr $lx12
hmread $llx0 $llr300v
hmread $llx8 $llr316v
# 9bit
hmwrite $llr200vr $lx0
hmwrite $llr216vr $lx4
hmwrite $llr232vr $lx8
hmwrite $llr248vr $lx12
hmread $llx0 $lls300v
hmread $llx8 $lls316v
# ls lr lln
fvadd $s300ve $r300ve $ln0v
fvadd $s304ve $r304ve $ln8v
fvadd $s308ve $r308ve $ln16v
fvadd $s312ve $r312ve $ln24v
fvadd $s316ve $r316ve $ln32v
fvadd $s320ve $r320ve $ln40v
fvadd $s324ve $r324ve $ln48v
fvadd $s328ve $r328ve $ln56v
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=74 j=74 m=0 bytes=1892
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# ======= In(0): ((8_L2B:1), (4_PE:1, 2:1, 2_W:1), (16:2))@LM0 / Float =======
d set $lm0n0c0p0 1 422C000042140000 # values=[43.0, 37.0] / Float @[0,0,0],[0,1,0]
d set $lm4n0c0p0 1 42BE000042640000 # values=[95.0, 57.0] / Float @[0,0,1],[0,1,1]
d set $lm8n0c0p0 1 4296000042400000 # values=[75.0, 48.0] / Float @[0,0,2],[0,1,2]
d set $lm12n0c0p0 1 427C000042100000 # values=[63.0, 36.0] / Float @[0,0,3],[0,1,3]
d set $lm16n0c0p0 1 41C0000042820000 # values=[24.0, 65.0] / Float @[0,0,4],[0,1,4]
d set $lm20n0c0p0 1 41C0000041B00000 # values=[24.0, 22.0] / Float @[0,0,5],[0,1,5]
d set $lm24n0c0p0 1 4170000042100000 # values=[15.0, 36.0] / Float @[0,0,6],[0,1,6]
d set $lm28n0c0p0 1 42AE000042280000 # values=[87.0, 42.0] / Float @[0,0,7],[0,1,7]
d set $lm32n0c0p0 1 42800000424C0000 # values=[64.0, 51.0] / Float @[0,0,8],[0,1,8]
d set $lm36n0c0p0 1 4292000042A00000 # values=[73.0, 80.0] / Float @[0,0,9],[0,1,9]
d set $lm40n0c0p0 1 4130000041D80000 # values=[11.0, 27.0] / Float @[0,0,10],[0,1,10]
d set $lm44n0c0p0 1 42C2000042600000 # values=[97.0, 56.0] / Float @[0,0,11],[0,1,11]
d set $lm48n0c0p0 1 42A80000427C0000 # values=[84.0, 63.0] / Float @[0,0,12],[0,1,12]
d set $lm52n0c0p0 1 41E8000041600000 # values=[29.0, 14.0] / Float @[0,0,13],[0,1,13]
d set $lm56n0c0p0 1 41D0000042800000 # values=[26.0, 64.0] / Float @[0,0,14],[0,1,14]
d set $lm60n0c0p0 1 41D0000041C80000 # values=[26.0, 25.0] / Float @[0,0,15],[0,1,15]
d set $lm2n0c0p0 1 41700000426C0000 # values=[15.0, 59.0] / Float @[0,2,0],[0,3,0]
d set $lm6n0c0p0 1 42BE000041D00000 # values=[95.0, 26.0] / Float @[0,2,1],[0,3,1]
d set $lm10n0c0p0 1 42C0000042C20000 # values=[96.0, 97.0] / Float @[0,2,2],[0,3,2]
d set $lm14n0c0p0 1 42A40000429E0000 # values=[82.0, 79.0] / Float @[0,2,3],[0,3,3]
d set $lm18n0c0p0 1 4214000042BC0000 # values=[37.0, 94.0] / Float @[0,2,4],[0,3,4]
d set $lm22n0c0p0 1 4190000042B40000 # values=[18.0, 90.0] / Float @[0,2,5],[0,3,5]
d set $lm26n0c0p0 1 428E0000427C0000 # values=[71.0, 63.0] / Float @[0,2,6],[0,3,6]
d set $lm30n0c0p0 1 4244000042B80000 # values=[49.0, 92.0] / Float @[0,2,7],[0,3,7]
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX