randomllama commited on
Commit
d72ca7c
Β·
verified Β·
1 Parent(s): 0cee402

sync: latest measured numbers

Browse files
Files changed (2) hide show
  1. LADDER.md +29 -0
  2. RESULTS.md +1 -1
LADDER.md CHANGED
@@ -89,3 +89,32 @@ control fails at 91%; fp8 GEMMs lower and run).
89
  | TTFT@16k warm | **6.6 s vs 7.9 s bf16 β€” 17% faster prefill** |
90
  | open item | raw-layout accounting resolves max_running_requests to 1; retune attempt (max-total 393216 + mamba-ratio 3) held at 1 and shrank the pool β€” the constraint is the mamba slice, not the token budget. Documented as PR known-limitation; fp8 = interactive config, bf16-T8 = fleet config |
91
  Kernel analysis + port: this rig (Fable agent), validated per the house protocol.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  | TTFT@16k warm | **6.6 s vs 7.9 s bf16 β€” 17% faster prefill** |
90
  | open item | raw-layout accounting resolves max_running_requests to 1; retune attempt (max-total 393216 + mamba-ratio 3) held at 1 and shrank the pool β€” the constraint is the mamba slice, not the token budget. Documented as PR known-limitation; fp8 = interactive config, bf16-T8 = fleet config |
91
  Kernel analysis + port: this rig (Fable agent), validated per the house protocol.
92
+
93
+ ## Multi-stream unlock (2026-08-28 pm) β€” the "1-stream fp8" open item is CLOSED, and it was never about fp8
94
+ The engine logs the whole story at boot:
95
+ `max_running_requests is capped to 2 by the mamba state cache (max_mamba_cache_size=10, 5 state slots per request)`.
96
+ Every DFlash config on this rig β€” bf16 T8 included, since it shipped identical memory args β€” was
97
+ silently capped at **2 concurrent spec streams**; the flat c2β†’c12 aggregate we called a "bandwidth
98
+ plateau" was queueing. The ~55 tok/s no-spec ceiling was the cap's shadow, not the machine's.
99
+
100
+ Fix (config FP8T8b, one coherent package): `--max-mamba-cache-size 40` (8 streams x 5 slots) +
101
+ `--mamba-ssm-dtype bfloat16` (halves state: 35 MB/slot vs 75) + `--mem-fraction-static 0.90`.
102
+ A first attempt (48 slots, fp32 ssm, 0.88) died at pool allocation β€” weights leave only ~2.3 GB of
103
+ fraction slack, so the ssm dtype lever is what makes 40 slots fit. KV pool grew to 84,288 tokens as
104
+ a side effect; 10.8 GB runtime headroom kept deliberately (GB10 OOM can wedge the node).
105
+
106
+ | c | FP8T8b (fp8-KV, DFlash, 40 slots) | old T8 (bf16, capped@2) | no-spec T12 |
107
+ |---|---|---|---|
108
+ | 1 | 36.9 | 37.3 | 14.5 |
109
+ | 2 | 48.2 | 49.5 | 27.1 |
110
+ | 4 | 46.9 | 51.7 | 36.8 |
111
+ | 8 | **80.3** (10.0/stream, 8/8) | 47.3 | 55.1 |
112
+ | 12 | **85.4** (7.1/stream, 12/12) | 48.8 | 55.0 |
113
+
114
+ +70% at c8, +75% at c12 over the capped curve; +55% over the no-spec "plateau". Decode batches
115
+ observed at 5-8 running requests β€” first true multi-stream DFlash on this rig. Trade-off, measured:
116
+ single-stream code median 27.4 vs 29.2 on the 10-slot fp8 config (~6%, consistent with bf16 ssm
117
+ states shaving accept length; deep-batch accept len ~3.1 vs ~4.2 single). Correctness: 19x21 gate
118
+ PASS, no token-0 collapse. **Production is now FP8T8b** β€” fp8-KV prefill wins AND the concurrency
119
+ curve, one config. (c-sweep prompts: 12 distinct short code/infra prompts, 400 max_tokens, temp 0,
120
+ stream:false, warmed; clocks stock.)
RESULTS.md CHANGED
@@ -36,7 +36,7 @@ distribution-preserving, not bit-identical, on this stack until that lands.
36
 
37
  ## Serving measurements (FINAL config: v4b image + D5 flags, 2026-08-28 ~04:00)
38
  - **TTFT** (stream:true, first content/reasoning delta, warm): ~4k-token prompt **2.3 s** uncached / **0.74 s** radix-cached; ~16k **7.9 s** (β‰ˆ2,000 tok/s prefill). ~64k: unmeasurable at the 65,536 context window. First-request-after-boot 4k read 39.6 s β€” cold-start JIT/caches; excluded as contaminated, reported for honesty.
39
- - **Concurrency**: c2 aggregate **30.2 tok/s** vs single-stream 29.4 β€” **DFlash verify saturates the machine at one stream**; added concurrency buys ~nothing at this config. For multi-client serving, a no-spec or MTP boot may aggregate better (untested).
40
 
41
  ## G6 losslessness β€” FINAL verdict (20 prompts, temp 0, content+reasoning captured, on vs off)
42
  **1/20 exactly identical; 19/20 diverge** somewhere in their (mostly long, reasoning-bearing)
 
36
 
37
  ## Serving measurements (FINAL config: v4b image + D5 flags, 2026-08-28 ~04:00)
38
  - **TTFT** (stream:true, first content/reasoning delta, warm): ~4k-token prompt **2.3 s** uncached / **0.74 s** radix-cached; ~16k **7.9 s** (β‰ˆ2,000 tok/s prefill). ~64k: unmeasurable at the 65,536 context window. First-request-after-boot 4k read 39.6 s β€” cold-start JIT/caches; excluded as contaminated, reported for honesty.
39
+ - **Concurrency**: superseded twice β€” first by the c-sweep (the "saturates at one stream" read was a max_running=2 artifact), then by the multi-stream unlock (LADDER.md): the mamba state cache capped ALL DFlash configs at 2 concurrent streams. With `--max-mamba-cache-size 40 --mamba-ssm-dtype bfloat16 --mem-fraction-static 0.90` on the fp8-KV config: **c8 80.3 tok/s aggregate (8/8 concurrent), c12 85.4** vs 47-49 capped and 55 no-spec. Single-stream cost of the unlock: 27.4 vs 29.2 code median (~6%).
40
 
41
  ## G6 losslessness β€” FINAL verdict (20 prompts, temp 0, content+reasoning captured, on vs off)
42
  **1/20 exactly identical; 19/20 diverge** somewhere in their (mostly long, reasoning-bearing)