Skip to content

CollectiveX: move to NCCL EP v0.2 and extend platform coverage - #2820

Merged
Oseltamivir merged 7 commits into
SemiAnalysisAI:mainfrom
artpol84:update/ncclep_v0.2
Sep 10, 2026
Merged

Oseltamivir merged 7 commits into
SemiAnalysisAI:mainfrom
artpol84:update/ncclep_v0.2

Conversation

@artpol84

@artpol84 artpol84 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

NCCL EP v0.2 fixes several critical bugs that were limiting the set of supported platforms for LL mode:

The release also resolves the NCCL dependency issue
that was causing HT IMA.

This commit retargets the nccl-ep backend to NCCL EP v0.2 and lifts
the previous platform and configuration limitations accordingly.

Thank you for considering our contribution,
NCCL EP team

Testing

GB200/GB300 platforms

Production sweep (nccl-ep, EP8 + EP16, gb200 + gb300 — 4 jobs, 22 cases total)
Full configs/sweep.json production profile (256 trials × 8 iters/trial, 32 warmup/trial, 128×4 chain sampling), generated via sweep_matrix.py/runtime/config.py (not hand-built argv). Covers normal mode (decode ladder 1–512 + prefill ladder 1024–8192) and low-latency mode (decode, _LL_LADDER_CAP-bounded) on both SKUs at both EP sizes.
Result: 22/22 cases status: success, cross_rank_consistent: true, zero correctness failures.

LL-fix extended verification (low-latency mode only, EP8 + EP16, gb200 + gb300 — 4 jobs, 4 cases)
Targeted re-test of the _LL_LADDER_CAP 128→256 fix at 10x the standard trial count (2560 trials/point vs. 256) across the full T=1–256 decode ladder, including T=256 — the exact point the pre-fix race was previously observed on (gb300 EP8, "1 failure in 5 executions") — and gb300 EP16, a case that was unmeasurable at all under the old T≤128 clamp.
Result: 4/4 cases status: success, cross_rank_consistent: true, zero failed token points across ~10k total trial-points measured.

Both rounds ran on the same container/backend-prep path (runtime/prepare_backend.sh unmodified; pinned nccl4py==0.3.1.post1/nccl-extensions==0.1.0).

B200

Production sweep (nccl-ep, EP8 + EP16, B200 — 2 jobs, 6 cases total)

Full configs/sweep.json production profile (256 trials × 8 iters/trial, 32 warmup/trial, 128×4 chain sampling), generated via sweep_matrix.py/runtime/config.py (not hand-built argv). Covers normal mode (decode ladder 1–512 + prefill ladder 1024–8192) and low-latency mode (decode, _LL_LADDER_CAP-bounded at the pre-change value of 128) at both EP sizes.

Result: 6/6 cases status: success, cross_rank_consistent: true, zero correctness failures (44/44 individual ladder points passed chain_last_output_passed + post_chain_state_passed, max relative error 0.0).


Note

Medium Risk
Expands automated sweep coverage to new multi-node NCCL EP EP16 cases on production GPU pools; misconfiguration could schedule failing or unstable jobs until B300 revalidation completes.

Overview
Enables NCCL EP EP16 in the CollectiveX sweep for h100-dgxc, h200-dgxc, and b300 by adding 16 to each platform’s backends.nccl-ep entry in platform_config.json (normal-mode matrix cells; ll_backends stay EP8-only on those SKUs).

README and docs/methodology.md are aligned with NCCL EP v0.2: EP8 and EP16 on all six NVIDIA SKUs, with x86 EP16 as 2×8 RDMA scale-out over GIN (no longer “unsupported pending revalidation” on H100/H200/B300). Prose notes v0.1 GIN faults on x86 pools and v0.2 fixes revalidated on B200, H100, and H200, with B300 enabled in config pending pool revalidation.

sweep_matrix.py only updates the NCCL EP precision comment to point at v0.2 FP8 dispatch as future integration work; nccl-ep remains BF16-only in BACKEND_PRECISIONS.

Reviewed by Cursor Bugbot for commit e40eac1. Bugbot is set up for automated code reviews on this repo. Configure here.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread experimental/CollectiveX/runtime/common.sh Outdated
@artpol84
artpol84 force-pushed the update/ncclep_v0.2 branch 2 times, most recently from 0e85fed to 0ed384a Compare September 4, 2026 07:19
Comment thread experimental/CollectiveX/runtime/common.sh Outdated
@Oseltamivir

Copy link
Copy Markdown
Collaborator

Thanks for the work, some of our clusters are down are we're talking to Nvidia SRE regarding getting them back. Will work on this over the weekend.

@artpol84

artpol84 commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

@Oseltamivir I have just pushed few more changes.
Most of them are aiming to actualize the documentation and I will appreciate your help to make it right.
There is also one code change (COLLX_NCCL4PY_SPEC → COLLX_NCCL_EP_SPEC rename) that I haven't yet tested also due to resource maintenance. I will verify it and update here as soon as I can.

NCCL EP v0.2 fixes several critical bugs that were limiting the
set of supported platforms for LL mode:
* Support for multiple handles per group was fixed
* The combine pipeline was properly fenced

The release also resolves the NCCL dependency issue
that was causing HT IMA.

This commit retargets the nccl-ep backend to NCCL EP v0.2
and lifts the previous platform and configuration limitations
accordingly.

Signed-off-by: Artem Y. Polyakov <artemp@nvidia.com>
Make sure that expected version of NCCL EP (v0.2) is installed.
NCCL EP ships as part of nccl-extensions v0.1.0 wheel.

Signed-off-by: Artem Y. Polyakov <artemp@nvidia.com>
Actualize runtime/common.sh:
* NCCL EP repository (migrated from nccl to nccl-extensions)
* NCCL EP v0.2 commit

Signed-off-by: Artem Y. Polyakov <artemp@nvidia.com>
Update the documentation in relevant areas to accurately
reflect platform coverage, configuration limitations,
and packaging nuances.

Signed-off-by: Artem Y. Polyakov <artemp@nvidia.com>
Rename COLLX_NCCL4PY_SPEC -> COLLX_NCCL_EP_SPEC to reflect that
starting from NCCL EP v0.2 it is destributed via nccl-extensions
wheel (not nccl4py).

Signed-off-by: Artem Y. Polyakov <artemp@nvidia.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit fed9aed. Configure here.

Comment thread experimental/CollectiveX/configs/platform_config.json
Run 34432070017 measured the HIGH_THROUGHPUT EP16 rows on h100-dgxc and
h200-dgxc as real 2x8 RDMA scale-out with every decode and prefill rung
correct, so the coverage prose no longer calls those rows unsupported.

@Oseltamivir Oseltamivir left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Oseltamivir

Copy link
Copy Markdown
Collaborator

Thanks for the work!

@Oseltamivir
Oseltamivir merged commit ce9daba into SemiAnalysisAI:main Sep 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants