问题 / #2418

#2418 Layer-split auto: link-miss scaling still regresses ~4x-gap x16+x4 rigs (0.1.41–0.1.44.1)

open · @MEsfits · 0 评论 · 去 GitHub 看

Multi-GPUAMD / HIPNVIDIA / CUDAModels & quants

说明

## Layer-split auto: link-miss scaling still regresses ~4x-gap x16+x4 rigs (0.1.41–0.1.44.1)

**Rig:** 2× RTX 3090 24GB, no P2P/NVLink (GPU1 in x4 chipset slot), Ryzen 9800X3D, Ubuntu. Workload: Qwen3.8-Flash-Next IQ3_S, 262144 ctx, int8 KV + `--kv-resident 32768`, `--mmap-experts`, `--prefill auto --spec 4` + MTP, `--pcie-frac 0.35 --spec-min-p 0.70`, `--expert-cache auto`. Probed links: CUDA0 (x16) 26.9 GB/s, CUDA1 (x4) 6.4 GB/s — a 4.2x gap.

**Regression (same prompts/config both arms, canonical benchy protocol, temp 0.6/top_p 0.95):**

| engine | narr decode | code decode | prefill 10K | prefill 90K | auto K |
|---|---|---|---|---|---|
| 0.1.40.3 | 130.86 (n=5, CV 8.3%) | 148.22 (n=5, CV 3.1%) | 1614.29 (n=3, CV 1.4%) | 3416.48 (n=1) | K=27 |
| 0.1.41 | 119–122 (CV 6–11%) | 135–142 (CV 2–5%) | 1805–1841 (CV ~1.5%) | 3072–3116 | K=19, miss x3.12 |
| 0.1.44.1 | 114–119 (CV 8–9%) | 135–136 (CV 6–8%) | 1833–1864 (CV ~2%) | 3097–3144 | K=31, miss x4.20 |

Signs (−decode, +10K, −90K) reproduce on every boot; magnitudes exceed run CV on code/prefill.

**Cause (bisected 0.1.40.2 clean → 0.1.41 guilty; 0.1.40.4 byte-identical per notes, verified):** the split-search changes, not the prompt-path rework. `0391e478` (absolute 20 GB/s scaling) + faster-last reorder moved auto from the balanced K=27 (27 layers x16 / 21 x4) to K=19 (29 x16 / 19 x4). Per-card prompt buffers (3.66 GiB both), chunk 8192 + 96-ring both, CPU share off on splits, stager identical under `--mmap-experts` — all ruled out, and the flag matrix (`PREFILL_CPU_SHARE=0`, `RING_BYTES=0`, `STAGER_SLEEP=0`, `--prefill` 1024/4096, `PREFILL_HELP=1`, `SPLIT_OWN=auto`) never recovers 0.1.40.x. Forcing placement proves it: 0.1.41 code at restored K=27 benches ≡ 0.1.40.3 at K=27 on all four legs (narr 120–131, code ~139, 10K ~1560–1620, 90K ~3287–3290; residual to K=31-truth is boot-to-boot placement instability, present on every version).

**Why 0.1.44 still guilty:** `9d41e18b` (#2007) scales only from a 4x gap against the fastest link — this rig is 4.2x, so it still scales (x4.20, harsher than 0.1.41's x3.12) and still lands off-balance (K=31 here, benched above). Same class as the T10 report in #2007, opposite direction.

**Proposed restore (PR to follow):** `STRATA_SPLIT_UNIFORM=1` — uniform miss cost (pre-0.1.41 objective), opt-in next to `STRATA_SPLIT_LINK_ABS`, default off. With `gpu_order: as_given` it returns K=27 and 0.1.40.x numbers on 0.1.41 code; re-verification on main in progress.

本站相关内容

相关页面的快捷入口。