Skip to content

Temporarily Remove GLM-5.3 Flash prefill CP support - #37484

Merged
Fridge003 merged 1 commit into
xinyuan/glm-5.3-flash-supportfrom
codex/remove-glm53-prefill-cp
Sep 2, 2026
Merged

Fridge003 merged 1 commit into
xinyuan/glm-5.3-flash-supportfrom
codex/remove-glm53-prefill-cp

Conversation

@Fridge003

@Fridge003 Fridge003 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #36507.

The removed functionality can be added back in a new PR based on main after the day-0 PR is merged.

Summary

  • remove GLM-5.3 Flash Prefill CP metadata, tensor layout conversion, head sharding, hybrid mHC CP communication, and all remaining CP branches from the KPool indexer
  • explicitly keep hybrid GLM-5.3/KPool out of DSA LayerSplit while preserving the existing non-hybrid LayerSplit path used by models such as GLM-5.2
  • align NIXL with main semantics: ordinary layer-sharded DSA state is sent by every CP rank; only replicated DSA tail state is sent by rank 0
  • remove the GLM-5.3-Flash support #36507-only DSA LayerSplit adaptations for hybrid GLM-5.3/KPool, including ownership-aware KPool writes and tail storage/offload
  • keep Decode CP, qk-no-norm, KPool/DSA core support, generic Prefill CP paths for non-hybrid DSA models, and the GLM-5.3 B200 E2E coverage including DFlash2
  • contain no test-file changes; all test content, including the DFlash2 E2E coverage, is inherited unchanged from the GLM-5.3-Flash support #36507 base branch

Validation

  • all pre-commit checks for the 13 changed production files passed
  • Python 3.12 compilation and git diff --check passed
  • verified that the PR diff under test/ is empty
  • targeted LayerSplit and NIXL CPU validation passed on the same production tree before the history-only test cleanup
  • the targeted GLM-5.3 B200 E2E validation remains queued; no full CI was requested

CI States

Latest PR Test (Base): ❌ Run #33578616468
Latest PR Test (Extra): ❌ Run #33578616438
Latest PR Test (AMD ROCm 7.2): ❌ Run #33578616649

@Fridge003

Copy link
Copy Markdown
Collaborator Author

/rerun-test test/registered/models_e2e/test_glm53_flash_b200.py

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Results for /rerun-test test/registered/models_e2e/test_glm53_flash_b200.py:

🚀 4-gpu-b200 (1 test): ✅ View workflow run

cd test/ && python3 registered/models_e2e/test_glm53_flash_b200.py

@Fridge003

Copy link
Copy Markdown
Collaborator Author

/rerun-test test/registered/models_e2e/test_glm53_flash_b200.py

@Fridge003

Copy link
Copy Markdown
Collaborator Author

/rerun-test test/registered/unit/disaggregation/test_nixl_backend_basic.py

@Fridge003

Copy link
Copy Markdown
Collaborator Author

/rerun-test test/registered/unit/mem_cache/test_dsa_layer_shard_utils.py

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Results for /rerun-test test/registered/unit/disaggregation/test_nixl_backend_basic.py:

🚀 ubuntu-latest (1 test): ✅ View workflow run

cd test/ && python3 registered/unit/disaggregation/test_nixl_backend_basic.py

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Results for /rerun-test test/registered/models_e2e/test_glm53_flash_b200.py:

🚀 4-gpu-b200 (1 test): ✅ View workflow run

cd test/ && python3 registered/models_e2e/test_glm53_flash_b200.py

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Results for /rerun-test test/registered/unit/mem_cache/test_dsa_layer_shard_utils.py:

🚀 ubuntu-latest (1 test): ✅ View workflow run

cd test/ && python3 registered/unit/mem_cache/test_dsa_layer_shard_utils.py

Remove the GLM-5.3 hybrid Prefill CP and LayerSplit adaptations, keep non-hybrid DSA LayerSplit and NIXL behavior aligned with main, and drop the remaining KPool CP paths.
@Fridge003
Fridge003 force-pushed the codex/remove-glm53-prefill-cp branch from 6e3559a to e9a1cd7 Compare September 2, 2026 01:14
@Fridge003
Fridge003 merged commit 515e865 into xinyuan/glm-5.3-flash-support Sep 2, 2026
80 of 89 checks passed
@Fridge003
Fridge003 deleted the codex/remove-glm53-prefill-cp branch September 2, 2026 01:43
kpham-sgl added a commit that referenced this pull request Sep 2, 2026
Follow-up to #36507, companion to #37484 (prefill CP).

The DSA backend has the decode-CP merge half but not the partition half:
nothing under attention/dsa/ calls get_dcp_lens or
update_local_kv_lens_for_dcp, unlike every other DCP-capable MLA backend,
and no CI case exercises DSA x DCP. Take the merge half back out of the
day-0 PR and re-land the axis whole in a PR based on main.

Removed:
- dsa_backend: _should_return_dsa_dcp_lse and its three call sites
  (tilelang decode, tilelang verify, trtllm decode), plus the
  _forward_tilelang return_lse branch that squeezed LSE for
  dcp_pack_a2a_send.
- tilelang_kernel: the return_lse factory flag on
  sparse_attention_fwd_kernel_v1/v2 and tilelang_sparse_fwd, the LSE
  prim_func argument, and the unconditional per-call LSE allocation the
  always-present signature forced on the non-DCP decode path. The file is
  now byte-identical to its pre-f040cc72e6 state; the NoPE (tail_dim == 0)
  kernel selection and the topk % 64 relaxation are untouched.
- dcp/comm: the Optional prefix_k_pe accommodation for NoPE models.
- eager_runner: the target-verify skip in front of
  prepare_context_parallel_metadata_for_dcp. That gate was model-agnostic
  and also changed DeepSeek-V2, Kimi-K2.5, Kimi-K3 and Kimi-Linear under
  DCP + spec; main's behavior is restored for them.
- glm5_next: prepare_context_parallel_metadata_for_dcp, the hook a model
  defines to opt into DCP.
- test_dsa_trtllm_fp8_cp: the two _should_return_dsa_dcp_lse cases. The
  prefill-CP cases for _should_all_gather_dsa_trtllm_fp8_kv stay, matching
  what #37484 keeps.

dcp/comm.py and eager_runner.py are now byte-identical to main. Main's DSA
backend never returned LSE, so DSA x DCP is exactly as unsupported as it
is on main -- no regression for GLM-5.2, DeepSeek-V3.2 or any other DSA
model. Kept deliberately: the `not get_parallel().dcp_enabled` clause in
_ingraph_verify_metadata_eligible (a defensive exclusion on a new feature,
not DCP support), and the DCP memory-sizing fixes in pool_configurator /
kv_cache_configurator, which are model-agnostic and no-ops at
attn_dcp_size == 1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
kpham-sgl added a commit that referenced this pull request Sep 2, 2026
Follow-up to #36507, companion to #37484 (prefill CP).

The DSA backend has the decode-CP merge half but not the partition half:
nothing under attention/dsa/ calls get_dcp_lens or
update_local_kv_lens_for_dcp, unlike every other DCP-capable MLA backend,
and no CI case exercises DSA x DCP. Take the merge half back out of the
day-0 PR and re-land the axis whole in a PR based on main.

Removed:
- dsa_backend: _should_return_dsa_dcp_lse and its three call sites
  (tilelang decode, tilelang verify, trtllm decode), plus the
  _forward_tilelang return_lse branch that squeezed LSE for
  dcp_pack_a2a_send.
- tilelang_kernel: the return_lse factory flag on
  sparse_attention_fwd_kernel_v1/v2 and tilelang_sparse_fwd, the LSE
  prim_func argument, and the unconditional per-call LSE allocation the
  always-present signature forced on the non-DCP decode path. The file is
  now byte-identical to its pre-f040cc72e6 state; the NoPE (tail_dim == 0)
  kernel selection and the topk % 64 relaxation are untouched.
- dcp/comm: the Optional prefix_k_pe accommodation for NoPE models.
- eager_runner: the target-verify skip in front of
  prepare_context_parallel_metadata_for_dcp. That gate was model-agnostic
  and also changed DeepSeek-V2, Kimi-K2.5, Kimi-K3 and Kimi-Linear under
  DCP + spec; main's behavior is restored for them.
- glm5_next: prepare_context_parallel_metadata_for_dcp, the hook a model
  defines to opt into DCP.
- test_dsa_trtllm_fp8_cp: the two _should_return_dsa_dcp_lse cases. The
  prefill-CP cases for _should_all_gather_dsa_trtllm_fp8_kv stay, matching
  what #37484 keeps.

dcp/comm.py and eager_runner.py are now byte-identical to main. Main's DSA
backend never returned LSE, so DSA x DCP is exactly as unsupported as it
is on main -- no regression for GLM-5.2, DeepSeek-V3.2 or any other DSA
model. Kept deliberately: the `not get_parallel().dcp_enabled` clause in
_ingraph_verify_metadata_eligible (a defensive exclusion on a new feature,
not DCP support), and the DCP memory-sizing fixes in pool_configurator /
kv_cache_configurator, which are model-agnostic and no-ops at
attn_dcp_size == 1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant