Repository navigation
[Build] Bump DeepGEMM pin to a6bbb80 - #57218
Conversation
Moves the vLLM DeepGEMM fork pin forward three commits from ad1f172, picking up: - vllm-project/DeepGEMM#9: corrects the ported SM120 GEMM and MQA execution paths, and moves the SM120 regression tests into dedicated tests/test_sm120_*.py files so the fork's copies of upstream-owned test files stay byte-identical to dev. - vllm-project/DeepGEMM#11: drops the Mega-Gate finite-score device trap, keeping the selected-expert-ID clamp but letting non-finite scores propagate instead of aborting. - vllm-project/DeepGEMM#13: raises kNumTimeoutCycles, the device-side spin-wait budget shared by the NVLink cross-rank barrier, the intra-device grid sync and the mega-MoE combine peer wait, from 60s to 300s. At 60s it could fire on long-running multi-rank workloads that were still making progress, turning a slow peer into a device assert. a6bbb80 is the current head of the fork's dev branch. tools/install_deepgemm.sh carries the same pin and is kept in sync, as its own comment and the one in deepgemm.cmake require. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>
|
/ci run |
|
✅ Triggered Buildkite CI #89396 for commit |
|
@cleonard530 I think you can port your libtorch stable ABI changes on top of this deepgemm commit. Meanwhile could you please audit the wheels again to see if the CUDA variant has any remaining call to non-stable APIs? |
Thanks @Harry-Chen! I can port the changes I made in deepseek-ai/DeepGEMM#393 on top of this branch, but this is only to get DeepGEMM of of |
|
Verified this pin bump on 2x DGX Spark (GB10, sm_121). Same nightly image on both sides ( ue8m0 is unchanged, bit for bit.
Float32 block scales changed behaviour. With float32 scale factors, That is a clear improvement: it is a host-side assert, so there is no NaN, no Xid, and the CUDA context stays usable. It does mean the SM12x pure-fp8 1d1d path is now a hard error rather than a silent one, which matters for a configuration I have filed separately (vLLM still selects the DeepGEMM FP8 linear kernel on SM12x when One process note. None of the SM120 changes in DeepGEMM#9 are exercised by CI anywhere:
Since there is DGX Spark hardware in CI already, adding |
Purpose
Bump the
vllm-project/DeepGEMMfork pin fromad1f172toa6bbb800(current head of the fork'sdevbranch), picking up three fixes:tests/test_sm120_*.pyfiles so the fork's copies of upstream-owned test files stay byte-identical todev(removes a recurring sync-conflict surface on upstream's per-release test rewrites).kNumTimeoutCyclesfrom 60s to 300s. That is the device-side spin-wait budget shared by every wait incomm/barrier.cuh: the NVLink cross-rank barrier, the intra-device grid sync, and the mega-MoE combine peer wait. At 60s it could fire on long-running multi-rank workloads that were still making progress, turning a slow peer into a device assert.Both pin sites are updated:
cmake/external_projects/deepgemm.cmakeandtools/install_deepgemm.sh, which each carry a comment requiring them to be kept in sync.Not a duplicate
Checked open PRs against
vllm-project/vllm:No open PR bumps the DeepGEMM pin. #56266 (
[DSv4.1] Integrate Mega-Gate from DeepGEMM, draft) is the only open PR touchingdeepgemm.cmake, and it refactors theFetchContent_Populateblock — it does not change_DEEPGEMM_UPSTREAM_TAG. No conflict beyond a trivial textual one if both land.Test Plan
The pin's risk is twofold: that the ref is fetchable as declared, and that DeepGEMM's
_Cstill compiles against it. The changedcsrc/apis/{attention,einsum,gemm,sm120_dispatch}.hppare compiled into_Con every arch, so a_Cbuild exercises them even on non-SM120 hardware.devhead and fetches with the two submodulesdeepgemm.cmakedeclares (third-party/cutlass,third-party/deep_jit)._Cat the new pin usingtools/build_deepgemm_C.py— the same scriptdeepgemm.cmakedrives.pre-commit runon the changed files.Test Result
pre-commit runon the two changed files: all applicable hooks pass (shellcheck,typos, dockerfile-graph, spaces-in-filenames, config-validation); the rest are skipped as no-files-to-check.Environment: GB300 (SM103), CUDA 13.1, aarch64, Python 3.12.
Evaluation
No model evaluation is included. This PR changes only a dependency pin and no vLLM code path. Of the three picked-up commits, none alters numerics on the hardware available here:
Evaluating the SM120 correctness fixes in #9 would need SM120 hardware, which I do not have. If a reviewer wants an eval on SM120 or a Mega-MoE accuracy run before merge, please say so and I will arrange it.
Note on AI assistance
AI assistance (Claude Code) was used for this change. I have reviewed every changed line, ran the commands above myself, and can defend the change end-to-end.
🤖 Generated with Claude Code