Skip to content

CollectiveX: restore nccl-ep zero-copy under CUDA graphs and FP8 in the default matrix / CollectiveX:恢复 nccl-ep 在 CUDA graph 下的零拷贝,并让 FP8 重新进入默认矩阵 - #4594

Merged
Oseltamivir merged 2 commits into
mainfrom
cx-nccl-ep-restore
Oct 28, 2026
Merged

Oseltamivir merged 2 commits into
mainfrom
cx-nccl-ep-restore

Conversation

@Oseltamivir

@Oseltamivir Oseltamivir commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

#4105 moved nccl-ep onto TensorRT-LLM's configuration and in doing so undid two pieces of NVIDIA's enablement. This restores both.

Contract tests and docs (nccl-ep.md, methodology, summary, README) follow.

Validation

  • pytest collectivex/tests: 240 passed, 12 skipped.
AI model disclosure
  • Claude Opus 5.5 (claude-opus-5-5, run through Claude Code): the change, tests and this description.
中文

摘要

#4105 让 nccl-ep 采用 TensorRT-LLM 的配置,同时撤销了 NVIDIA 的两项启用工作。本 PR 恢复这两项。

契约测试与文档(nccl-ep.md、methodology、摘要、README)同步更新。

验证

  • pytest collectivex/tests:240 通过,12 跳过。

@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.

Code review found no issues

No high-confidence issues detected in this change.

…he default matrix

#4105 moved nccl-ep onto TensorRT-LLM's configuration and in doing so undid two pieces of
NVIDIA's enablement:

- Low-latency zero-copy (#3370) was turned off for every graphed row, because TensorRT-LLM
  dispatches into a plain tensor under capture. Graphed rows, the default, therefore ran the
  staged dispatch. Low-latency now zero-copies wherever the library can (rank-major, BF16, inside
  one NVLink/MNNVL domain), graphed or eager. Scale-out, expert-major and DS-FP8 still stage.
- FP8 low-latency decode (#3726) left the default matrix through OFF_PATH_PRECISIONS, dropping
  9 cases. OFF_PATH_PRECISIONS is empty again and cases.json regains those 9 cases (220 requested,
  196 runnable EP).

Graphed zero-copy rows no longer match TensorRT-LLM, so they are library (candidate) rows; eager
and scale-out low-latency rank-major BF16 rows keep the tensorrt-llm contract. Contract tests and
docs follow.

中文:恢复 nccl-ep 在 CUDA graph 下的零拷贝,并让 FP8 重新进入默认矩阵

#4105 让 nccl-ep 采用 TensorRT-LLM 的配置,同时撤销了 NVIDIA 的两项启用工作:

- 低延迟零拷贝(#3370)在所有 graph 行上被关闭,因为 TensorRT-LLM 在 capture 下写入普通张量。
  默认的 graph 行因此改走 staging dispatch。现在低延迟在库支持的地方都使用零拷贝(rank-major、
  BF16、单个 NVLink/MNNVL 域内),graph 与 eager 均如此。scale-out、expert-major 与 DS-FP8 仍走 staging。
- FP8 低延迟 decode(#3726)通过 OFF_PATH_PRECISIONS 被移出默认矩阵,少了 9 个用例。
  OFF_PATH_PRECISIONS 重新为空,cases.json 恢复这 9 个用例(共 220 个请求、196 个可运行 EP 用例)。

graph 零拷贝行不再与 TensorRT-LLM 一致,因此标为库行(candidate);eager 与 scale-out 的低延迟
rank-major BF16 行保留 tensorrt-llm 约定。契约测试与文档同步更新。
…rect its engine labels

- COLLX_NCCL_LL_ZERO_COPY=0 stages every low-latency dispatch, so the graphed in-domain rank-major
  BF16 row can run TensorRT-LLM's graphed staged dispatch again and carries engine_contract
  tensorrt-llm. A row carries the contract only when its zero-copy choice matches TensorRT-LLM's for
  the regime (zero-copy eager in-domain, staged under capture or scale-out), so the opt-out makes
  the eager in-domain row a library row. HT ignores the knob. The row drops -zc and records
  ll_zero_copy_opt_out in implementation.library_config. Ranks inherit it like the other COLLX_
  knobs (srun --export=ALL).
- Docs and comments say scale-out, matching _internode (EP larger than the scale-up domain): GB200
  and GB300 EP16 span nodes inside one MNNVL domain and zero-copy. methodology.md,
  methodology-summary.md and the adapter comments no longer call every nccl-ep low-latency row a
  deployed-engine row. Removed a duplicated comment.
- Tests cover the graphed zero-copy candidate row, eager and graphed scale-out, GB-style EP16 inside
  an MNNVL domain, and the knob.
- README: case counts after rebasing onto the MI300X/MI325X change (220 requested, 196 runnable EP,
  6 unsupported) and the MoRI/UCCL-EP coverage rows that change implies.

中文:为 nccl-ep 低延迟零拷贝增加关闭开关,并修正其引擎标签

- COLLX_NCCL_LL_ZERO_COPY=0 让所有低延迟 dispatch 走 staging,使 graph 模式下单个 scale-up 域内的
  rank-major BF16 行可以再次运行 TensorRT-LLM 的 graph staging dispatch,并带有 engine_contract
  tensorrt-llm。只有当行的零拷贝选择与 TensorRT-LLM 在该模式下的选择一致时(域内 eager 用零拷贝,
  capture 下或 scale-out 用 staging),该行才带此契约,因此开启该开关后域内 eager 行成为库行。HT
  忽略该开关。该行去掉 -zc,并在 implementation.library_config 中记录 ll_zero_copy_opt_out。各 rank
  与其他 COLLX_ 开关一样继承该变量(srun --export=ALL)。
- 文档与注释改用 scale-out,与 _internode(EP 大于 scale-up 域)一致:GB200 与 GB300 的 EP16 跨节点
  但位于同一 MNNVL 域内,使用零拷贝。methodology.md、methodology-summary.md 与适配器注释不再把所有
  nccl-ep 低延迟行称为已部署引擎行。删除一处重复注释。
- 测试覆盖 graph 零拷贝 candidate 行、eager 与 graph 的 scale-out 行、MNNVL 域内的 GB 式 EP16,以及该开关。
- README:rebase 到 MI300X/MI325X 变更之后的用例数量(220 个请求、196 个可运行 EP、6 个不支持),
  以及该变更带来的 MoRI/UCCL-EP 覆盖行。
@Oseltamivir
Oseltamivir merged commit 253c38b into main Oct 28, 2026
4 checks passed
@Oseltamivir
Oseltamivir deleted the cx-nccl-ep-restore branch October 28, 2026 06:46
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.

1 participant