浏览代码

bench: warm-prefix depth measurement (--benchy-args=--enable-prefix-caching) — the c2 long-context 'collapse' (13.7/5.6/2.1) was llama-benchy's default cold-monolith branch, proven artifact (flag flips c2@65K 13.7 -> 52.1, TTFT 28.3s -> 1.5s); drop DEBUG from sparkring recipe (diagnosis closed)

Alexander Korolev 3 周之前
父节点
当前提交
d5a2032562
共有 3 个文件被更改,包括 18 次插入 和 4 次删除
  1. 3 4
      recipes/mimo26-flash-mopd-4x-sparkring/recipe.toml
  2. 6 0
      src/bench.rs
  3. 9 0
      src/bench_depth.rs

+ 3 - 4
recipes/mimo26-flash-mopd-4x-sparkring/recipe.toml

@@ -170,10 +170,9 @@ VLLM_LM_HEAD_A16 = "1"
 VLLM_B12X_MOE_FP4_FORCE_A16 = "0"
 VLLM_KV_CACHE_LAYOUT = "BLHNC"
 VLLM_PLUGINS = "b12x_loader,sparkring_status"
-# EXPERIMENT (c2-collapse hunt): scheduler-level logs — prefix cache
-# hit/miss + num_computed per step, to trace why the c2 pair at depth
-# re-prefills 65K instead of hitting. Drop after diagnosis.
-VLLM_LOGGING_LEVEL = "DEBUG"
+# DIAGNOSIS CLOSED 2026-09-29: the c2 depth "collapse" was the bench's
+# own default (llama-benchy without --enable-prefix-caching serializes
+# cold 67K prefills per pair — artifact, not engine). DEBUG removed.
 B12X_ROCE_GID_INDEX = "3"
 SPARKRING_FEATURES = ""
 SPARKRING_TOOL_CHOICE_CONTRACT = "1"

+ 6 - 0
src/bench.rs

@@ -261,6 +261,12 @@ pub async fn run(config: &Config, a: &Args, dry_run: bool) -> Result<()> {
         a.seed.to_string(),
         "--hardmode".into(),
         "--perf".into(),
+        // Depth rows must decode a WARM prefix: llama-benchy's default
+        // branch concatenates context+prompt into one 67K request whose
+        // serialized dual prefills measured 13.7/5.6/2.1 t/s at c2 — an
+        // admission artifact, not the engine (diagnosis 2026-09-29,
+        // wire capture + this flag flipping c2 13.7 → 52.1 in one run).
+        "--benchy-args=--enable-prefix-caching".into(),
         "--concurrency".into(),
         a.concurrency.clone(),
         "--json-file".into(),

+ 9 - 0
src/bench_depth.rs

@@ -46,6 +46,11 @@ pub fn depth_args(
         CONCURRENCY.to_string(),
         "--benchy-runs".into(),
         RUNS.to_string(),
+        // Warm-prefix decode, same as the main perf phase: without this
+        // llama-benchy measures serialized monolith prefills at c2 (the
+        // 65K/131K/256K "collapse" of 2026-09-29 was this artifact —
+        // the flag flipped c2 @65K from 13.7 to 52.1 t/s in one run).
+        "--benchy-args=--enable-prefix-caching".into(),
     ];
     if let Some(tok) = tokenizer {
         args.push("--tokenizer".into());
@@ -77,6 +82,10 @@ mod tests {
             joined.contains(&format!("--benchy-runs {RUNS}")),
             "{joined}"
         );
+        assert!(
+            joined.contains("--benchy-args=--enable-prefix-caching"),
+            "{joined}"
+        );
         assert!(!joined.contains("--tokenizer"), "{joined}");
     }