docs/tt-capture-default-decode.md

Tenstorrent capture-default decode rate

Qwen3-0.6B on the P150 (thalia), the #2566 recipe re-taken on the #1625 flip tree (row/BACKEND-TENSTORRENT-HOST-FREE-FORWARD @ d88aed67b, 2026-09-04) where captured decode is the SHIPPED DEFAULT. Batch 1, 96 completion tokens, --repeat 5, leg 1 of each arm discarded, warm medians over the remaining four runs, order-alternated A/B/A·B/A/B triples, one flock $HOME/gpu.lock and one tt-smi -r 0 reset for the whole batch. Zero replays and zero fatals on every leg.

ArmWarm median tok/sPer-triple medians
default (capture on, no env)27.7027.63 / 27.67 / 27.97
VT_TT_DECODE_CAPTURE=0 (opt-out)12.8612.88 / 13.02 / 12.76
ratio2.15x

The arms differ ONLY in capture: VT_TT_HOST_FREE_DECODE stays unset in both, so the ratio isolates the decode-graph capture and not the host-free residency both arms share. The 2026-09-01 measurement of the same captured leg as an explicit opt-in (27.47 tok/s, #2566) agrees within 1%, and the opt-out arm reproduces the eager host-free class measured on 2026-08-30 (12.21 tok/s).

Reproduce (one leg; the batch alternates the two arms and discards leg 1):

source "$HOME/Sources/tt/env-tt-common.sh"
export TT_METAL_RUNTIME_ROOT="$HOME/Sources/tt/tt-metal"
export LD_LIBRARY_PATH="<build>:$TT_METAL_RUNTIME_ROOT/build_Release/lib:$TT_METAL_RUNTIME_ROOT/build_Release/lib64"
"$HOME/Sources/tt/.venv/bin/tt-smi" -r 0
build/examples/vllm-cli --model <Qwen3-0.6B snapshot dir> \
  --prompt 'Write a short story about a robot learning to paint.' \
  --max-tokens 96 --repeat 5
# opt-out leg: prefix VT_TT_DECODE_CAPTURE=0

Limitations: single prompt, single request, 0.6B only — the shape the flip gates on. Multi-request captured throughput is the #1627 async lane and is not measured here. The 4B and Mistral captured arms are not gated (#2811, #2812) and publish no figure.