aboutsummaryrefslogtreecommitdiffhomepage
path: root/NOTE.md
blob: 5ff1a9abc744d9ab9b7be6ef20562d4aa54382c0 (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
# 得点効率表

| 問題            | 自得点 | 差 |
|-----------------|--------|----|
| Mul 7           |     70 | 30 |
| Abs             |     80 | 20 |
| FAM 8           |     85 | 15 |
| FMul 2          |    100 |  0 |
| Lesseq          |    100 |  0 |
| Transpose       |     67 | 33 |
| Gather          |    100 |  0 |
| Square Sum      |    100 |  0 |
| Convert Endian  |    100 |  0 |
| Mod 3           |     48 | 52 |
| Matrix Square   |    100 |  0 |
| Contains        |     19 | 81 |
| Count Up        |     36 | 64 |
| Transpose MAB   |     47 | 53 |
| Inversion Small |     27 | 73 |
| Inversion       |     19 | 81 |

# 短縮テクニックメモ

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