The KV-cache 2-graph decode (GemmaKvDecoder, GEMMA_KV=1) is CPU-verified (transformers PR #245) but the
board loop is an UNVERIFIED draft. On the first SL2610 run, confirm each silent-corruption trap:
Done: the loop reproduces the oracle [262146,236769,3255,718,498,1373,262152,106], PERF-LOGBOOK.md shows the O(seq²)→O(seq) collapse vs ~6000 ms/token, then make GEMMA_KV=1 the default in Pipeline.kt.
Runbook: sl2610-function-calling/docs/GEMMA-KV-BOARD-LOOP.md. Tracker: docs/GEMMA-KV-INT8.md.
The KV-cache 2-graph decode (
GemmaKvDecoder,GEMMA_KV=1) is CPU-verified (transformers PR #245) but theboard loop is an UNVERIFIED draft. On the first SL2610 run, confirm each silent-corruption trap:
GemmaKvDecoder.kFirstInOutput=false((V,K) per return-SSA); flip totrueif the first run yields garbage tokens.--output=@fileformat —IreeRuntime.invokeFilesassumes RAW bytes; strip the.npyheader on read if the board writes NumPy.gemma_with_pastinput arg order — trace-derived; confirm against the compiled vmfb.x?x256sentinel-relax leaves shape inference toiree-compile; confirm the vmfb accepts it (else fixed-pad+mask fallback).--task_topology_group_countaccepted by the boardiree-run-module(gated to revert).iree-compile(g165e12a).Done: the loop reproduces the oracle
[262146,236769,3255,718,498,1373,262152,106],PERF-LOGBOOK.mdshows the O(seq²)→O(seq) collapse vs ~6000 ms/token, then makeGEMMA_KV=1the default inPipeline.kt.Runbook:
sl2610-function-calling/docs/GEMMA-KV-BOARD-LOOP.md. Tracker:docs/GEMMA-KV-INT8.md.