Skip to content

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

Open
artpol84 wants to merge 5 commits into
SemiAnalysisAI:mainfrom
artpol84:update/ncclep_v0.2
Open

CollectiveX: move to NCCL EP v0.2 and extend platform coverage#2820
artpol84 wants to merge 5 commits into
SemiAnalysisAI:mainfrom
artpol84:update/ncclep_v0.2

Conversation

@artpol84

@artpol84 artpol84 commented Sep 3, 2026

Copy link
Copy Markdown

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
Changes benchmark dependency pins, multi-node NCCL EP coverage, and low-latency ladder sizing on real GPU fleets; correctness risk is mitigated by v0.2 fixes but sweep matrices and comparability across historical runs shift.

Overview
CollectiveX’s nccl-ep backend now installs nccl-extensions[cu13]==0.1.0 (NCCL EP v0.2) instead of the older nccl4py / contrib/nccl_ep path, with matching updates in runtime/common.sh and prepare_backend.sh (cache key, pip install, docs).

Coverage and measurement behavior change with that pin: platform_config.json enables nccl-ep EP16 in normal mode on H100/H200/B300 and low-latency EP16 on B200 (nscale), GB200, and GB300 where it was previously EP8-only or blocked. In ep_nccl.py, low-latency decode _LL_LADDER_CAP goes 128 → 256, dropping the work-around for the unfixed combine fence; docs/README/methodology now describe x86 EP16 GIN scale-out as supported for HT and BF16-only sweeps (v0.2 FP8 dispatch left as future work).

Reviewed by Cursor Bugbot for commit eca48f7. 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.

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 f8fefc0. Configure here.

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
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants