Issues / #2445
#2445 [Bug]: STRATA_DUMP_FIRST_LOGITS writes no files with --pipeline-windows 2 on a 2-GPU layer split, and gives no warning (0.1.42)
open · @talisp · 0 コメント · GitHub で見る
BenchmarksServer & APIMulti-GPUNVIDIA / CUDAModels & quantsDocumentationWindows
本文
### What happened With `--serve --pipeline-windows 2` on a two-GPU layer split, `STRATA_DUMP_FIRST_LOGITS=<path>` wrote **no** `<path>.<n>` files in 12 server sessions (2 models, contexts 64K to 1M, each session sent at least 60 one-token requests). The same engine binary, machine, config and prompts with `--pipeline-windows 0` (or with one GPU) write the files as documented in the code comment: 993,280 bytes each, i.e. the full vocabulary (248,320 logits) as float32. There is no message in the engine log or on stderr in the failing case. ### How to reproduce 1. Two NVIDIA GPUs, `--layer-split auto`, `--pipeline-windows 2`, `--spec 4 --mtp ...`, any model; start `strata --serve` with `STRATA_DUMP_FIRST_LOGITS=/tmp/l` in the environment. 2. Send one `POST /v1/chat/completions` with `"max_tokens": 1`. 3. `ls /tmp/l.*` shows nothing. 4. Restart with `--pipeline-windows 0` (everything else identical): `/tmp/l.0` appears. ### What we think is going on Reading `src/program/generate.cpp`: the serve-side dump (~line 11605 in v0.1.42, ~12662 on `main` today) sits right after `ver.run(...)` in the non-pipelined window loop. The file has only two dump sites (serve, and `generate` at ~13851 on main); the pipelined decode loop (the code that prints `pipelined decode:` and `pcie_auto_step` "in the pipelined loop too") has none. We did **not** trace which path the first window takes with `--pipeline-windows 2`; the evidence is that no file appears, in 12 of 12 sessions. ### Why it matters Anyone comparing quantizations or code paths by KL through this dump gets an empty folder and no error. We only noticed after a multi-day battery had run, because the harness collected nothing and nothing complained. `tools/quant_quality.py` uses `STRATA_LOGPOS` and is not affected; the variable is not mentioned in `docs/DETAILS.md`, so this may simply be an undocumented diagnostic with a mode limit. ### Suggestions (any one would have saved us a day) - Write the dump from the pipelined path too; or - print one stderr line when the variable is set but the current mode will not honour it; or - say in the code comment / `DETAILS.md` that it needs `--pipeline-windows 0`. We can test a patch on 2x A2 if useful. ### Strata version, GPU, OS v0.1.42 (commit `61b3fb5dd3f1e8ec09cf7e4e05208bc6d3c46406`), source build for sm_86 · 2x NVIDIA A2 16 GB, PCIe gen4 x8 each, no NVLink · Ubuntu 24.04.4, driver 570.211.01, CUDA 12.8. Not re-tested on 0.1.43 or later; the dump code is unchanged on `main`. ### Engine log Nothing to attach: there is no log line for the failing case, which is the problem. --- Part of a set of reports from one test battery on an idle lab VM: see the field report / community benchmark #2446. Drafted by an AI assistant (Claude Code) working from our logs; the account owner will read replies here.
関連リンク
インストール・モデル・リリースへの站内リンク。