# 得点効率表 ``` 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` を使わずマスクを使う