From 5573ca171f211ebc833c51df4f3e367f0d855380 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 5 Oct 2026 18:23:44 -0700 Subject: [PATCH] frank-small: seam follows the f16 K + q8_0 V contract from 1862dc3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1862dc3 repriced the Ornith rung (nine full-attn layers: f16/f16 = dead boot) and flipped CACHE_TYPE_V to q8_0, but its note that the seam was 'retargeted in 8f53df7' covered only the payload paths — the KV test still asserted the 2026-10-03 unquantized-both-halves contract and held the suite red. Test now pins the shipped contract: K=f16, V=q8_0, flash-attn on. --- tests/frank_small_unit.bats | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/frank_small_unit.bats b/tests/frank_small_unit.bats index cf6c4b2..2ac4355 100755 --- a/tests/frank_small_unit.bats +++ b/tests/frank_small_unit.bats @@ -118,14 +118,17 @@ argv_value() { [ $((ctx / par)) -le 262144 ] } -@test "the KV contract is unquantized both halves, flash-attn on" { +@test "the KV contract is f16 K + q8_0 V, flash-attn on" { serve_argv [ "$status" -eq 0 ] [ "$(argv_value --cache-type-k)" = "f16" ] - # Frank, 2026-10-03: the values are unquantized too. The flag pair is what - # makes this observable — a build without the FA path silently falls back, - # so both must appear in the argv the supervisor runs. - [ "$(argv_value --cache-type-v)" = "f16" ] + # Frank, 2026-10-05 (1862dc3): the Ornith payload has NINE full-attention + # layers (18 KiB/token/half) and +1,900 MiB of weights vs MiMo Q6_K, so + # f16/f16 lands ~379 MiB free — a dead boot; q8_0 V keeps 2 x 200,704 + # AND the 2-3 GiB floor. The flag pair is what makes this observable — a + # build without the FA path silently falls back, so both must appear in + # the argv the supervisor runs. + [ "$(argv_value --cache-type-v)" = "q8_0" ] [ "$(argv_value --flash-attn)" = "on" ] }