Skip to content

cudaPackages.libnvshmem: default withNccl to nccl.meta.available#532039

Merged
GaetanLepage merged 1 commit into
NixOS:masterfrom
jfroche:cuda-libnvshmem-jetson-nccl
Jun 15, 2026
Merged

cudaPackages.libnvshmem: default withNccl to nccl.meta.available#532039
GaetanLepage merged 1 commit into
NixOS:masterfrom
jfroche:cuda-libnvshmem-jetson-nccl

Conversation

@jfroche

@jfroche jfroche commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

withNccl currently defaults to true, unconditionally adding nccl to buildInputs.

This is problematic on platforms where NCCL is unavailable, such as pre-Thor Jetson (Orin), where nccl.meta.available is false due to its badPlatforms assertion. In such cases, libnvshmem would still pull the unavailable nccl into its closure, leading to an eval-time error.

We are changing the default to nccl.meta.available to make libnvshmem skip NCCL automatically on platforms where NCCL is unsupported. We preserving the existing behaviour everywhere else (x86_64-linux, Thor Jetson) where nccl.meta.available is true.

Note that this guard has already been added to other CUDA modules such as cudaPackages.cudss in #437723.

  • Built on platform:
    • x86_64-linux
    • aarch64-linux (cudaCapabilities = [ "8.7" ];)
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
    • [NixOS tests] in [nixos/tests].
    • [Package tests] at passthru.tests.
    • Tests in [lib/tests] or [pkgs/test] for functions and "core" functionality.
  • Ran nixpkgs-review on this PR. See [nixpkgs-review usage].
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits [CONTRIBUTING.md], [pkgs/README.md], [maintainers/README.md] and other READMEs.
  • Follows the [automation/AI policy].

`withNccl` defaults to `true`, unconditionally adding `nccl` to `buildInputs`. 

This is problematic on platforms where NCCL is unavailable, such as pre-Thor Jetson (Orin), where `nccl.meta.available` is `false` due to its `badPlatforms` assertion. In such cases, libnvshmem would still pull the unavailable `nccl` into its closure, leading to an eval-time error.

We are changing the default to `nccl.meta.available` to make libnvshmem skip NCCL automatically on platforms where NCCL is unsupported. We preserving the existing behaviour everywhere else (x86_64-linux, Thor Jetson) where `nccl.meta.available` is `true`.

Note that this guard has already been added to other CUDA modules such as `cudaPackages.cudss` in NixOS#437723.
@nixpkgs-ci nixpkgs-ci Bot requested a review from a team June 15, 2026 17:36
@nixpkgs-ci nixpkgs-ci Bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 6.topic: cuda Parallel computing platform and API labels Jun 15, 2026

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

Thanks!

@GaetanLepage

Copy link
Copy Markdown
Contributor

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 532039 --extra-nixpkgs-config '{ allowUnfree = true; cudaSupport = true; }'
Commit: f666e54eb0991510127c4f74c575c4122e01f4d6


x86_64-linux

@GaetanLepage GaetanLepage added this pull request to the merge queue Jun 15, 2026
@nixpkgs-ci nixpkgs-ci Bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jun 15, 2026
Merged via the queue into NixOS:master with commit 5296365 Jun 15, 2026
31 checks passed
@github-project-automation github-project-automation Bot moved this from New to ✅ Done in CUDA Team Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: cuda Parallel computing platform and API 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants