Skip to content

perf: opt-in omission of unused DSpark MTP residual buffer - #85

Merged
fank merged 2 commits into
mainfrom
claude/dspark-unused-mtp-buffer
Nov 4, 2026
Merged

fank merged 2 commits into
mainfrom
claude/dspark-unused-mtp-buffer

Conversation

@fank

@fank fank commented Nov 4, 2026

Copy link
Copy Markdown
Member

Scope

Narrow allocation-only change, not upstream #55575's auxiliary-compute optimization. With VLLM_PCAI_DSPARK_SKIP_MTP_BUFFER=1, V2 DSpark with valid configured auxiliary layers and PP1 does not allocate the target _mtp_hidden_buffer. Default, ordinary MTP, V1, PP and missing/invalid auxiliary configurations retain the existing buffer.

The DSpark auxiliary consumer ignores the MTP residual. At our 4096-token, 4096-hidden, hc_mult4 bf16 geometry this omits 128 MiB/GPU. No auxiliary arithmetic, target computation or workspace/graph-lifetime changes. No production changes.

Evidence

  • 20 repository CPU tests pass, including opt-in, default, MTP/no-aux and V1/PP fallback cases.
  • Patch applies with zero fuzz to the installed audit image and the resulting model source compiles.
  • Installed consumer CPU probe passes ordinary, partial graph-staging and all-staged branches with a poison residual that fails on any read. Uses synthetic auxiliary tensors and a stub projection; NOT CUDA-graph execution or full-model equivalence.
  • GPU graph capture/replay, output correctness, performance and actual profiled KV refund remain untested. Source-estimated 128 MiB is not a measured capacity gain.

Evaluation instructions: docs/dspark-mtp-buffer.md. Compare the SAME image flag off/on, without packed scales or other experiment flags.

@fank
fank marked this pull request as ready for review November 4, 2026 09:51
@fank
fank merged commit 123de0c into main Nov 4, 2026
7 checks passed
@fank
fank deleted the claude/dspark-unused-mtp-buffer branch November 4, 2026 09:55
@fank

fank commented Nov 4, 2026

Copy link
Copy Markdown
Member Author

GPU follow-up on TP2 H100 NVL, same-image flag off/on:

  • Off: 6.76 GiB available KV, 1,129,474 reported tokens.
  • On: 6.89 GiB available KV, 1,150,350 reported tokens: +20,876 tokens (+1.85%). GiB log values are rounded; the source-derived omitted allocation is 128 MiB/GPU.
  • Both ranks logged the omission only in the enabled run. Profile graph memory was 0.92 GiB and final graph memory 0.61 GiB in both runs.
  • Serving reports both suites exited zero; vision checks were 3/3 in each. Full performance/acceptance comparison remains under review. Free-form golden text hashes differ; this is not bitwise output parity evidence.

This establishes an actual profiled KV capacity increase, not merely an allocation estimate. No production deployment or default-flag change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant