aboutsummaryrefslogtreecommitdiffhomepage
path: root/NOTE.md
blob: 7571e915e6c2918af91c49d2a0e473126db2591b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 得点効率表

```
m = min{上位5名の点}
M = 自分の点
```

| 問題            | m   | M   | m-M |
|-----------------|-----|-----|-----|
| Mul 7           |  88 |  70 |  18 |
| Abs             | 100 |  68 |  32 |
| FAM 8           |  85 |  85 |   0 |
| FMul 2          | 100 | 100 |   0 |
| Lesseq          | 100 | 100 |   0 |
| Transpose       |  85 |  67 |  18 |
| Gather          | 100 | 100 |   0 |
| Square Sum      | 100 | 100 |   0 |
| Convert Endian  | 100 | 100 |   0 |
| Mod 3           |  85 |  48 |  37 |
| Matrix Square   | 100 |  92 |   8 |
| Contains        |  82 |  17 |  65 |
| Count Up        |  81 |  33 |  48 |
| Transpose MAB   |  57 |  49 |   8 |
| Inversion Small |  67 |  27 |  40 |
| Inversion       |  81 |  19 |  62 |

# 短縮テクニックメモ

* `imm` を使わない
* `nop` を使わない
* なるべく重ねる
    * 特に、ALU と MAU を同時に動かす
* 許される限り精度を落とす
* flat アドレス指定を使う
    * データ競合回避のためにアクセスを遅らせる (`$lr[128,128,128,0]` のようなパターン。必要なのは `$lr0` だけ)
* PE に broadcast されている場合
    * `j` 指定を使う
* `$t` を間接参照以外にも使う
* 2倍は `packbit`
* 入力と出力のスループットは絶対
* MAB/PE 等の出し分けに `$t` を使わずマスクを使う