Skip to content

fix(core): make pixi lock solve across CUDA variants#1758

Merged
cpcloud merged 2 commits intoNVIDIA:mainfrom
cpcloud:fix/core-pixi-lock-variants
Mar 12, 2026
Merged

fix(core): make pixi lock solve across CUDA variants#1758
cpcloud merged 2 commits intoNVIDIA:mainfrom
cpcloud:fix/core-pixi-lock-variants

Conversation

@cpcloud
Copy link
Contributor

@cpcloud cpcloud commented Mar 12, 2026

Summary

  • align cuda-core and cuda-bindings Pixi source-package metadata with the selected CUDA major by making cuda-version a build variant and propagating it through package host/run dependencies
  • keep local sibling checkout wiring in a dedicated local-deps feature so default, cu13, and examples still use the local cuda_bindings/cuda_pathfinder checkouts while cu12 resolves against published packages
  • switch cuda-core to target-specific CUDA dev packages, scope the profiler header dependency to Linux, and give the examples environment its own CUDA system requirement so cross-platform solves stay consistent
  • refresh both cuda_core/pixi.lock and cuda_bindings/pixi.lock so the manifests and committed lockfiles stay in sync

Why this is needed

  • the staged version bumps for cuda-core, cuda-bindings, and cuda-pathfinder forced Pixi to re-resolve the local path packages
  • without a cuda-version build variant, Pixi generated source metadata for the local packages against the wrong CUDA major, which made pixi lock fail or panic when it tried to solve cu12, cu13, and examples across Linux and Windows
  • the generic CUDA development metapackages also pulled incompatible Windows dependencies, so the lock needed target-specific package names to stay solvable on win-64

How it works

  • cuda-version is now part of the source-package build matrix, so Pixi can build and lock distinct CUDA 12 and CUDA 13 variants of the local packages instead of reusing mismatched metadata
  • local-deps isolates the editable sibling-checkout workflow from the published-package cu12 workflow, which avoids forcing the local cuda-bindings checkout through a CUDA 12 solve path it does not need for this repo
  • the examples feature declares its own CUDA system requirement so pytorch-gpu can resolve its __cuda virtual package needs without reintroducing those constraints into the other environments
  • on NixOS, Pixi only detects __cuda when the driver libraries are discoverable through the loader path; exporting LD_LIBRARY_PATH=/run/opengl-driver/lib makes pixi see __cuda=13.2

Align the cuda-core and cuda-bindings Pixi source-package variants with the selected CUDA major and keep local checkout wiring out of the cu12 solve path. This restores cross-platform lock generation after the package and cuda-pathfinder version bumps changed the source metadata.

Made-with: Cursor
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Mar 12, 2026

Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

Regenerate the cuda-bindings lockfile so it matches the updated CUDA variant layout and remains reproducible alongside the core Pixi changes.

Made-with: Cursor
@cpcloud
Copy link
Contributor Author

cpcloud commented Mar 12, 2026

/ok to test

@github-actions

This comment has been minimized.

@cpcloud cpcloud requested a review from rparolin March 12, 2026 18:44
@cpcloud cpcloud merged commit e6b553d into NVIDIA:main Mar 12, 2026
86 checks passed
@cpcloud cpcloud deleted the fix/core-pixi-lock-variants branch March 12, 2026 19:36
@github-actions
Copy link

Doc Preview CI
Preview removed because the pull request was closed or merged.

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.

2 participants