Skip to content

perf(sm120): add checked host collectives for non-P2P TP4 - #1794

Merged
AlpinDale merged 3 commits into
perf/dsv41-4x-6000profrom
perf/dsv41-nonp2p-collectives
Oct 30, 2026
Merged

AlpinDale merged 3 commits into
perf/dsv41-4x-6000profrom
perf/dsv41-nonp2p-collectives

Conversation

@AlpinDale

@AlpinDale AlpinDale commented Oct 30, 2026 •

Copy link
Copy Markdown
Member
  • Add opt-in host-memory collectives for native DeepSeek-V4.1 on SM120 TP4, without P2P or a CPU progress thread.
  • Keep small reductions direct; shard reductions from 16 rows. Reuse checked step completion and graph-lifetime handling.

Enable APHRODITE_ALLREDUCE_USE_PCIE_PULL=1 and APHRODITE_ALLREDUCE_PCIE_TRANSPORT=host. Depends on #1788.

Performance

4× RTX PRO 6000 Blackwell Server GPUs, TP4, 1,048,576 context, MNBT4096, DSpark K7. Three measured runs plus an excluded warmup; 2,048 output tokens/request.

NCCL is the best observed result with 2 or 8 CTAs per cell/metric. P2P/NVLS disabled; SHM transport verified. Rates are aggregate tok/s. Fresh-prefix prefill/TTFT; prefix-warmed common-active decode.

Input C NCCL prefill tok/s Host prefill tok/s NCCL decode tok/s Host decode tok/s Decode gain NCCL TTFT p50/p95 s Host TTFT p50/p95 s
2,674 1 10,071 9,889 439.9 449.0 +2.1% 0.274/0.280 0.268/0.272
2,674 8 10,935 10,914 1,131.1 1,188.1 +5.0% 1.202/1.989 1.206/1.987
8,185 1 10,673 10,630 323.7 361.4 +11.6% 0.769/0.771 0.768/0.778
8,185 8 11,396 11,407 874.5 946.6 +8.2% 3.627/5.925 3.633/5.972
131,071 1 10,925 10,941 361.9 377.9 +4.4% 11.980/12.009 11.947/11.983
131,071 8 11,255 11,271 903.5 980.4 +8.5% 53.363/95.013 53.248/94.829

Host reductions use rank-ordered FP32 accumulation and one BF16 rounding; NCCL BF16 differs, so output and draft acceptance can change. Workstation/Max-Q hardware was not tested.

Verified: 88 CPU tests; four-GPU graph/epoch/fault checks; paired compatibility; model reasoning/tools; late-draft faults publish no tokens.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T02:14:25.406136Z e8b9605 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AlpinDale
AlpinDale merged commit fcf6880 into perf/dsv41-4x-6000pro Oct 30, 2026
2 checks passed
@AlpinDale
AlpinDale deleted the perf/dsv41-nonp2p-collectives branch October 30, 2026 05:36
AlpinDale added a commit that referenced this pull request Oct 30, 2026
* perf(sm120): optimize DeepSeek-V4.1 inference

Signed-off-by: AlpinDale <[email protected]>

* feat(sm120): add native DeepSeek V4.1 backend

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): add paired PCIe all-reduce

Signed-off-by: AlpinDale <[email protected]>

* test(distributed): initialize paired all-reduce dispatch fixtures

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): fuse DeepSeek V4.1 decode norm, draft KV and sampling

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): sample DSpark draft and verify on vocab shards

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): split paired all-reduce exchange and combine

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): fuse DeepSeek V4.1 KV RoPE into Q/KV norm

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): use the ll_bf16 router GEMM on SM120

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): size DeepSeek V4.1 Engram lookups to live rows

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): overlap DeepSeek V4.1 mHC coefficients with the next sublayer

Signed-off-by: AlpinDale <[email protected]>

* fix(sm120): run DeepSeek V4.1 indexer chunks only on prepared plans

Signed-off-by: AlpinDale <[email protected]>

* fix(sm120): resolve DeepSeek V4.1 mypy errors

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): fuse DSpark draft sampling winner selection

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): build DeepSeek V4.1 attention metadata in one launch

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): prefetch DeepSeek V4.1 attention weights during the MoE all-reduce

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): gather small sampling packets over the paired PCIe transport

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): prefetch the router weights during the attention all-reduce

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): project the DSpark Markov bias inside the vocab-parallel draft sampler

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): decode V4.1 sparse attention in one cluster kernel

Signed-off-by: AlpinDale <[email protected]>

* fix(dsv41): keep reasoning across tool-result turns and parse tool images in prompt order

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): prepare every DSpark draft KV group in one launch

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): run the b12x W4A8 decode MoE in one fused kernel

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): shard eager prefill indexer rows across TP ranks

Honor the configured row threshold, preserve global metadata offsets, and gather ragged selected-index shards before attention. Keep pure decode, capture, and the wide candidate producer on their existing paths. Document the existing nondeterministic boundary-tie selection policy rather than promising bit-identical production indices.

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): avoid tensor equality in CuTe kernel argument binding

Signed-off-by: AlpinDale <[email protected]>

* Optimize native SM120 attention without changing BF16 arithmetic

Signed-off-by: AlpinDale <[email protected]>

* refactor(sm120): isolate native kernels and feature integration

Move SM120 and PCIe sources into subsystem directories with local operator registration. Keep model preparation, configuration, rendering and worker lifecycle helpers feature-owned.

Include draft TP faults in final output gating, enforce fused MoE staging bounds and preserve canonical NVFP4 gate/up layout. Replace stale implementation-detail assertions with numerical and consumer-visible regressions.

Signed-off-by: AlpinDale <[email protected]>

* perf(sm120): add checked host collectives for non-P2P TP4 (#1794)

* Add checked host-memory collectives for non-P2P SM120 TP4

Signed-off-by: AlpinDale <[email protected]>

* Specialize small host collectives and shard large reductions

Signed-off-by: AlpinDale <[email protected]>

* Avoid redundant host input copies on lane owners

Signed-off-by: AlpinDale <[email protected]>

---------

Signed-off-by: AlpinDale <[email protected]>

* Fix V4.1 decoder row retention for fixed-token prompt scoring

Signed-off-by: AlpinDale <[email protected]>

---------

Signed-off-by: AlpinDale <[email protected]>
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