# daily-findings — 最新

最新3つの記録日のFindingです。人間向けトップページと同じFindingを収録しています。

## 2026-11-10

### [llama.cpp Metal: 三角マスクを乗算からselectへ変更し±inf由来のNaNを回避](https://findings.yatabis.dev/findings/llama-cpp-4b46d965385c-tri-select-nonfinite.md)

分類: WATCH

4b46d965385c は ggml\_tri の除外要素を0/1比較値との乗算で処理する実装を、条件selectで0を書き込む実装へ変更。除外位置に±infを含む4種類の三角行列ケースを追加している。

**所感**

attention maskやfused処理で、0倍による消去は非有限値を安全に除外できない。MLX独自kernelでもselectと算術maskの意味の差を確認する具体例になる。MLXに同じ不具合があるという主張ではない。

タグ: apple-silicon, metal, runtime

情報源:

- [metal : make ggml\_tri select instead of scaling by the comparison (\#30711)](<https://github.com/ggml-org/llama.cpp/commit/4b46d965385c9b3b0e912f4fde73e57cd1751d0d>) — ggml-org/llama.cpp

### [llama.cpp Metal: Flash Attention出力scratch初期化の書込み範囲を制限](https://findings.yatabis.dev/findings/llama-cpp-e01c9f1875e8-fa-output-init-bounds.md)

分類: WATCH

e01c9f1875e8 は FA vector kernel の出力scratch初期化を条件付きにし、DV4/NL が SIMD幅で割り切れない場合は tiisg &lt; NL のlaneだけが初期化する。変更はthreadgroup側のso4への書込みであり、性能向上の測定結果ではない。

**所感**

独自attention kernelでは計算本体だけでなく、head幅・SIMD lane分担・scratch初期化の組合せも境界検査の対象になる。MLXへの同一不具合の存在や移植後の安全性は未確認。

タグ: apple-silicon, metal, runtime

情報源:

- [metal : prevent out-of-bounds writes to the Metal FA output buffer (\#31662)](<https://github.com/ggml-org/llama.cpp/commit/e01c9f1875e8a96674756ed144aa9701498b83dd>) — ggml-org/llama.cpp

### [saragossa: batch行一致テストの許容誤差をskinny kernel実在時だけに限定](https://findings.yatabis.dev/findings/saragossa-016c0c9ba5c6-skinny-gated-row-oracles.md)

分類: WATCH

016c0c9ba5c6 は rows\_exact の例外許容誤差を qmm\_skinny\_available() と非strictモードの両方が成立する場合だけに限定した。skinny pipelineを持たないdeviceではbit一致を要求し、NAX専用oracleはローカル実行対象として分離した。

**所感**

batchと単行decodeの差異を、実際に選択されるkernel経路に結び付けて検証する設計。GDNのconv/SSM状態も含む比較に適用され、全deviceへ一律の許容誤差を与えて退行を隠すことを避けられる。実機検証は未実施。

タグ: apple-silicon, metal, runtime

情報源:

- [test(metal): exceptions rows\_exact conditionnées au pipeline skinny](<https://github.com/azerozero/saragossa/commit/016c0c9ba5c6c2874005f77d4907789d80560e7f>) — azerozero/saragossa

### [saragossa: MLX互換u4形式を保つ最小二乗再量子化を追加](https://findings.yatabis.dev/findings/saragossa-b80d12a84ab4-u4-affine-least-squares.md)

分類: WATCH

b80d12a84ab4 はBF16重みからgroup 64のaffine u4コード・scale・biasを交互更新する変換ツールを追加した。BF16丸め後に元のmin-max解とgroup単位の二乗誤差を比較し、改善した解だけを採用。packingとtensor shape/dtypeを保持する。

**所感**

kernelを変更せずに重み表現の誤差を減らす設計候補。負のscale、checkpoint名の対応、group境界と丸め後の誤差判定が移植時の論点になる。作者の限定checkpoint評価を一般的な品質・速度改善には拡張できない。

タグ: apple-silicon, metal, runtime

情報源:

- [feat(quant): re-quantification u4 par moindres carrés](<https://github.com/azerozero/saragossa/commit/b80d12a84ab425fc8f1bc13929650020331fa226>) — azerozero/saragossa

## 2026-11-09

### [basaltがQuest KV block採点を符号別集約と行列積へ変更](https://findings.yatabis.dev/findings/basalt-0d32bb19447b-quest-sign-split-matmul.md)

分類: WATCH

QuestKVCacheでqueryの正・負成分をGQA group軸に沿って別々に合計し、key blockの上限・下限との2回のmatmulからblock scoreを作る変更がmergeされた。従来broadcast式とのallCloseテストも追加。

**所感**

MLX上で疎注意の選択処理を組む際、大きなbroadcast中間値を作る式をgroup集約とGEMMへ移す参考。 実数上の同じbound式でも浮動小数点の加算順は変わるため、僅差のblock順位と生成品質は別途確認が必要。KV全体はbase cacheへ保持しており、この変更だけでKV常駐量は減らない。上流テストは未実行、速度・メモリ削減量は未測定。

タグ: apple-silicon, inference, runtime

情報源:

- [basaltがQuest KV block採点を符号別集約と行列積へ変更](<https://github.com/goodmai/basalt/commit/0d32bb19447b5bc1bdc0d9bfe2beb5b0a950f53d>) — goodmai/basalt

### [llama.cppがMetal radix Top-Kの同点選択を決定的にする変更をmerge](https://findings.yatabis.dev/findings/llama-cpp-57d04820dfef-metal-topk-deterministic-ties.md)

分類: WATCH

Metal radix Top-Kのatomic順序依存の出力compactionを置換。同点が残り枠を超える場合は列順のscanで小さいindexを選び、MTLの同点選択self-checkを有効にした。

**所感**

MLXで疎attention indexerやMoE routingを最適化する際、同点の採用規則を実行順から切り離し、coalesced accessと両立させる具体例。 同一backend内の再現性とbackend間の一致は別。上流testは行内index集合を比較するため、順序一致までの検証ではない。上流に性能の自己報告もあるが、測定条件の揃った比較やローカル効果は今回未検証。ハードウェアの存在・対応はこのcommitの記述だけから認定しない。

タグ: apple-silicon, inference, runtime

情報源:

- [llama.cppがMetal radix Top-Kの同点選択を決定的にする変更をmerge](<https://github.com/ggml-org/llama.cpp/commit/57d04820dfef7a3519aac276d018a6fd71251895>) — ggml-org/llama.cpp

### [project-obsidianのlayer単位expert union prefillを初回確認](https://findings.yatabis.dev/findings/project-obsidian-1a7e533f0dc2-layer-major-expert-union-prefill.md)

分類: WATCH

Rust＋Metalのproject-obsidianを初回確認。prefillはlayerごとに全入力tokenのroutingを集め、選択expertのunionをSSDから一度読み、同じexpertへ割り当てたtoken行をgrouped GEMMへ渡す。

**所感**

MLXのSSD expert streamingではI/O再利用とGEMM化を一緒に計画する参考になる。chunk長、union expert数、scratch行数をschedulerのmemory budgetへ結び付ける設計課題が見える。 初回観測であり今回のcommitが全機能を導入したという意味ではない。prefill poolは全expert数分を事前確保するため低memory保証にはならず、読込み関数はpreadのshort readを検出していない。移植前に容量制約とI/O失敗処理の確認が必要。作者の速度・同等性主張を再現したものではない。

タグ: apple-silicon, inference, runtime

情報源:

- [project-obsidianのlayer単位expert union prefillを初回確認](<https://github.com/vladiclick/project-obsidian/blob/1a7e533f0dc2c24d5cbf3176f2591749f454f589/src/forward.rs>) — vladiclick/project-obsidian
- [project-obsidianのlayer単位expert union prefillを初回確認](<https://github.com/vladiclick/project-obsidian/blob/1a7e533f0dc2c24d5cbf3176f2591749f454f589/src/disk_io.rs>) — vladiclick/project-obsidian

## 2026-11-08

### [dotLLMがprefillの最終logits行だけを計算する経路を追加](https://findings.yatabis.dev/findings/dotllm-318c5d1c6615-prefill-last-logit-contract.md)

分類: WATCH

ForwardにlastLogitOnlyを追加し、通常prefillは最後のtokenだけfinal RMSNormとLM headを実行する。logits scratchも必要行数へ分離し、従来の全行経路を投機検証用に残す。

**所感**

MLX runtimeのExecutionPlanでKV更新に必要な全tokenと、出力projectionが必要な位置を分ける具体例。 CPU/CUDA中心の別実装から得た設計上の示唆。MLXの既存経路との差分と投機検証・logprobs要件の照合が必要。

タグ: apple-silicon, inference, runtime

情報源:

- [Skip non-final LM head projection and logit scratch during prefill (\#450)](<https://github.com/kkokosa/dotLLM/commit/318c5d1c6615b31634a592b1268831c73fde400c>) — kkokosa/dotLLM

### [llama.cppがMetal GROUP\_NORMのbatch・stride処理を修正](https://findings.yatabis.dev/findings/llama-cpp-80d2c0c2c56e-group-norm-batch-strides.md)

分類: WATCH

Metal GROUP\_NORMでne03の各batchをdispatchし、入出力strideをkernelへ渡す修正がmergeされた。flat/strided経路を分け、対応dtypeをF32へ限定する。

**所感**

MLX独自kernelでもrow-contiguousとtensor全体の連続性を区別し、batch軸と入出力strideを正規化の契約に含める参考。 GroupNormを使うモデル・画像系runtimeの境界テストに使える。MLXに同じ不具合があるとは未確認。

タグ: apple-silicon, inference, runtime

情報源:

- [metal : fix GROUP\_NORM for ne03 &gt; 1 and non-contiguous inputs (\#31852)](<https://github.com/ggml-org/llama.cpp/commit/80d2c0c2c56e4a1bbf74be98f64b99927bf230bc>) — ggml-org/llama.cpp

### [moe-labがGemma 4のGeGLUとQwen系shared expertへ対応](https://findings.yatabis.dev/findings/moe-lab-1a67c544bf1f-geglu-shared-expert-contract.md)

分類: WATCH

int4 expert kernelのdispatch・fallback・参照実装へGeGLU選択を通し、Gemma 4 routerのper-expert scaleを保持するpatchを追加。Qwen3.5/3.6系ではgated shared expertを加算する。

**所感**

MoE最適化でexpert GEMMだけでなくactivation・router重み・共有expertの意味論を維持する必要があることを、MLX上の具体的コードで確認できる。 tiny modelのglue同一性テストも取得。上流テストは今回実行しておらず、丸め・tie-breakによるstockとの出力差もあるため数値同等性や速度を保証しない。

タグ: apple-silicon, inference, runtime

情報源:

- [Round 9: Gemma-4 and Qwen3.5/3.6 MoE support](<https://github.com/Tigerly1/moe-lab/commit/1a67c544bf1fd755a8d3de330bac12b59245b47a>) — Tigerly1/moe-lab

### [nuclisが直前のprefill時間に応じて音声のGPU実行枠を調整](https://findings.yatabis.dev/findings/nuclis-0d3f9b78351b-speech-prefill-time-budget.md)

分類: WATCH

GPU executorが直前stepの実時間を記録し、音声処理がその長さに応じた実行budgetと先行音声量を選ぶ変更がmergeされた。画像prefillにも進捗通知を追加した。

**所感**

chunkサイズだけでなく、実測step時間と遅延に敏感な仕事のbuffer余裕をschedulerへ渡す設計例。 上流の固定閾値はその実装の選択でありMLXへの推奨値ではない。音声の途切れとTTFTのtradeoffがあり、解消保証やローカル測定はない。

タグ: apple-silicon, inference, runtime

情報源:

- [fix(serve): speech stays ahead of a prefill; no empty answers after hosted calls (\#52)](<https://github.com/tildaslashalef/nuclis/commit/0d3f9b78351b6343923149ebd3375fe6c096786a>) — tildaslashalef/nuclis

### [streamoeがexpert prefill batchをslot容量とscratch行数の両方で分割](https://findings.yatabis.dev/findings/streamoe-1d364eadc28f-prefill-expert-row-budget.md)

分類: WATCH

layer-major prefill等を統合したrevisionで、expert読み込みbatchにmax\_rows制約を追加。slot容量内でも割当行数がscratch上限を超えると分割し、span途中で切れた場合は次batchでspanを再読する。

**所感**

SSD expert streamingでは常駐weight量だけでなくtoken-to-expert割当scratchもmemory planへ入れる必要がある。MLXのMoE prefill scheduler設計の参考。 単一bucketがmax\_rowsを超える場合は単独batchを許すため、これだけで厳密なmemory capを証明しない。行splitと実scratch確保の整合確認が必要。速度やMLXへの直接適用は未検証。

タグ: apple-silicon, inference, runtime

情報源:

- [Merge integrate-2026-11-07: Flash-Next 3-bit, layer-major prefill, cross-layer guess](<https://github.com/transybao1393/streamoe/commit/1d364eadc28f6da77fdab48062465b716b80a63a>) — transybao1393/streamoe

## アーカイブ

- [週別アーカイブ](https://findings.yatabis.dev/archive/index.md)
