Sfoglia il codice sorgente

spec: 1017 depth sweep (16K-256K) on the EP2/1M config — single-stream and suffix decode hold, concurrent deep prefills starve decode

Alexander Korolev 4 giorni fa
parent
commit
0deb95f896
1 ha cambiato i file con 25 aggiunte e 4 eliminazioni
  1. 25 4
      specs/tech-architecture/dsv41-1017-tuning.md

+ 25 - 4
specs/tech-architecture/dsv41-1017-tuning.md

@@ -105,12 +105,33 @@ contention can fail on rank desync, so retry before suspecting the config;
 (b) the engram/weight pre-staging on node-local storage is what keeps a
 *restart* cheap — the 26-95 min here is all NAS weight read.
 
+## Depth sweep (final config, llama-benchy pp2048/tg128, 2 runs per point)
+
+`ctx` rows = prefill the full depth then decode 128; `pp2048` rows = a 2048-token
+suffix at that depth (the agent-shaped case).
+
+| depth | ctx pp (c1/c2) | ctx tg (c1/c2) | pp2048 tg (c1/c2) |
+|---|---|---|---|
+| 16,384 | 3,530 / 2,279 | 39.0 / 32.7 | 46.5 / 62.5 |
+| 65,536 | 1,532 / 2,151 | 32.0 / **6.0** | 47.3 / 62.1 |
+| 131,072 | 1,545 / 1,561 | 36.1 / **2.7** | 42.1 / 61.2 |
+| 262,144 | 1,447 / 1,525 | 50.5 / **1.4** | 46.4 / 67.5 |
+
+Reading: single-stream decode after a 262K prefill is fine (50.5), and the
+agent-shaped case (short suffix at depth) holds 42-67 tok/s through the whole
+range. What collapses is **two concurrent deep conversations**: the c2 `ctx`
+rows fall to 6.0 / 2.7 / 1.4 tok/s because both streams' prefills serialize
+through the 2048-token chunk loop and decode gets the interleaved slots only.
+This is the documented prefill-vs-decode contention (see
+`dgx-spark-agent-serving-findings.md`), not a regression of this config. If
+long-context multi-session serving becomes the goal, the lever is
+`--chunked-prefill-size` (with `SPARK_ENGRAM_MAX_IDS` raised accordingly) or
+an admission cap, not more KV.
+
 ## Not yet measured
 
-- `SGLANG_DSV41_REASONING_EFFORT=75` (knapcio default; stu.miller measured 1017
-  at `max` using ~40% of the old model's reasoning tokens). Changes token volume
-  and therefore responsiveness far more than any flag above — needs its own
-  quality + responsiveness A/B.
+- The depth sweep above is now measured (see the table); the concurrent
+  deep-context failure mode is documented rather than fixed.
 - DSPARK `--speculative-dspark-block-size` sweep (3/5/7); accept length on the
   live lane sits at 3.0-5.2 with block 5.
 - `--depth` sweep (16K..256K) on the final config; the 1M context cap is adopted