unpack スレッド SrcA・SrcB に入力を詰める wait_front pop_front アプリケーション・データ層 モデル・アルゴリズム層 次の入力 ソフトウェア・フレームワーク層 E pack スレッド D 部分和の CB 56 タイル ハードウェア・カーネル層 B L1 加算(出力 8 タイル × 7) F 上位の層(ホスト側の施策の設定) → 効果なし A 書き戻し( DEST → L1) B C D E F compute kernel の変更 math スレッド FPU 実行(K 2タイル分) 1 回 = K 2タイル分、 × 64 回 停止: Src 両方空 A FPU 実行 回数 候補 A〜F を探した順(「既存の仕組みを先に」) ① 設定 → 効果なし ② API・既存の実例 → 効果あり ③ データの置き場所(未検討) A K の分割幅を広げる( in0_block_w)→ 待ちは残る C 呼ぶ位置を変える E 部分和の置き場所を増やす B L1 加算の有無 → 別の読み戻しが増える D 書き込み位置を戻す( SDPA の実例) F DEST に置き続ける 76