aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--NOTE.md36
-rw-r--r--problems/07-FMul-2/03.vsm15
2 files changed, 51 insertions, 0 deletions
diff --git a/NOTE.md b/NOTE.md
new file mode 100644
index 0000000..b7057fb
--- /dev/null
+++ b/NOTE.md
@@ -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 処理する?