Skip to content

Add NCCL system-provided targets - #22

Open
cerisier wants to merge 1 commit into
mainfrom
cerisier/add-nccl-system-targets
Open

cerisier wants to merge 1 commit into
mainfrom
cerisier/add-nccl-system-targets

Conversation

@cerisier

Copy link
Copy Markdown
Member

Summary

  • add public nccl_interface_library and nccl_system targets
  • link system consumers through the unversioned NCCL linker interface without packaging the redistribution DSO
  • add consumer smoke coverage and a configured-graph purity check across the CUDA matrix

Why

The system-provided target contract requires a semantic system wrapper whose closure uses interface imports instead of packaged shared-library imports. NCCL exposed shared and static variants but omitted that system family. Both the older 2.25.1 archive layout and the newer 2.31.2 layout provide lib/libnccl.so and no dedicated stub directory, so the unversioned shared-library interface is the correct link input.

Checks

  • reproduced the missing public targets on merged main
  • built nccl_interface_library and nccl_system across all six e2e CUDA platforms
  • built nccl_system_smoke for the old and new NCCL archive families
  • confirmed every configured system closure contains nccl_interface_library and no nccl_shared_library
  • inspected the link action and ELF: libnccl.so is the link interface, NEEDED is libnccl.so.2, and no NCCL DSO is present in output runfiles
  • passed root bazel build //..., NCCL tests, and the CUDA 13.3.1 consumer //:all build

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