fullseye

attention_tiled — LLMCORE attend op

使い方

タイル + online softmax の注意(FlashAttention の芯)→ tokens。近似ではない。

Dao ら 2022。key/value を tile 行ずつ読み、走っている最大値と分母をその場で 補正しながら足す。作る中間行列は (T, tile) だけで、(T, T) を一度も作らない —— 速さの出どころは近似ではなく、置き場所。attention_softmax との相対差は タイル 128 枚でも 1.2e-15(タイル 1 枚で 8.2e-16 なので、枚数を 128 倍しても 1.5 倍)。

Args: query: (T, d) float。 key: (S, d) float。 value: (S, dv) float。 tile: 一度に読む key/value の行数。小さいほど中間行列が小さく、枚数が増える。 mask: None / "causal" / "window" / (T, S) の bool 配列。 window: mask="window" のときの窓幅。 scale: スコアの倍率。None なら 1/√d。 Returns: tokens (T, dv) float: attention_softmax と機械精度で一致する。

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(tokens を入力に取れる)

rms_norm · rope_rotate · attention_scores · attention_apply · attention_softmax · attention_linear · attention_grouped · kv_cache_decode

同カテゴリ(attend)

attention_softmax · attention_linear · attention_grouped


Provenance: llmcore.py — LLMCORE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.