diff options
| -rw-r--r-- | NOTE.md | 36 | ||||
| -rw-r--r-- | problems/07-FMul-2/03.vsm | 15 |
2 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,36 @@ +# 得点効率表 + +``` +m = min{上位5名の点} +M = 自分の点 +``` + +| 問題 | m | M | m-M | +|-----------------|-----|-----|-----| +| Mul 7 | 80 | 80 | 0 | +| Abs | 80 | 68 | 12 | +| FAM 8 | 90 | 90 | 0 | +| FMul 2 | 100 | 85 | 15 | +| Lesseq | 100 | 100 | 0 | +| Transpose | 85 | 67 | 18 | +| Gather | 100 | 100 | 0 | +| Square Sum | 100 | 93 | 7 | +| Convert Endian | 100 | 100 | 0 | +| Mod 3 | 70 | 48 | 22 | +| Matrix Square | 100 | 92 | 8 | +| Contains | 25 | 17 | 8 | +| Count Up | 64 | 33 | 31 | +| Transpose MAB | 67 | 17 | 50 | +| Inversion Small | 63 | 28 | 35 | +| Inversion | 54 | 19 | 35 | + +# 短縮テクニックメモ + +* `imm` を使わない +* `nop` を使わない +* なるべく重ねる + * 特に、ALU と MAU を同時に動かす +* 許される限り精度を落とす +* flat アドレス指定を使う +* PE に broadcast されている場合 + * `j` 指定を使う diff --git a/problems/07-FMul-2/03.vsm b/problems/07-FMul-2/03.vsm new file mode 100644 index 0000000..de331d5 --- /dev/null +++ b/problems/07-FMul-2/03.vsm @@ -0,0 +1,15 @@ +# (96 / 8).times { |i| puts "hvaddr $llm#{8*i}v $llm#{8*i}ve $ln#{8*i}v" } +hvaddr $lm0v $lm0ve $ln0v +hvaddr $lm8v $lm8ve $ln8v +hvaddr $lm16v $lm16ve $ln16v +hvaddr $lm24v $lm24ve $ln24v +hvaddr $lm32v $lm32ve $ln32v +hvaddr $lm40v $lm40ve $ln40v +hvaddr $lm48v $lm48ve $ln48v +hvaddr $lm56v $lm56ve $ln56v +hvaddr $lm64v $lm64ve $ln64v +hvaddr $lm72v $lm72ve $ln72v +hvaddr $lm80v $lm80ve $ln80v +hvaddr $lm88v $lm88ve $ln88v + +# ある程度コストをかけて ALU 処理する? |
