Skip to content

feat: add CUDA runtime installation helper - #657

Open
binaryaaron wants to merge 7 commits into
binaryaaron/cuda13/runtime-supportfrom
binaryaaron/cuda13/installer
Open

feat: add CUDA runtime installation helper#657
binaryaaron wants to merge 7 commits into
binaryaaron/cuda13/runtime-supportfrom
binaryaaron/cuda13/installer

Conversation

@binaryaaron

@binaryaaron binaryaaron commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a helper for installing a selected supported CPU or CUDA runtime.
  • Keep runtime selection aligned with the generated dependency manifest.

Validation

  • Installer dry runs for CPU, CUDA 12.9, and CUDA 13.0

Final PR in the CUDA 13 stack; depends on #656.

@binaryaaron
binaryaaron requested review from a team as code owners July 16, 2026 18:41
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 96af9ae8-e782-4a0a-a6b0-df1a58f19f0f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch binaryaaron/cuda13/installer

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds a runtime installation helper whose CPU and CUDA index sets are generated from the dependency manifest.

  • Supports CPU, CUDA 12.9, and CUDA 13.0 runtime selection.
  • Adds installer dry-run coverage and CI integration.
  • Adds CUDA 13 container-build coverage and updates runtime documentation.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the prior platform-specific CPU test and help-handling issues are fixed in the current code.

Important Files Changed

Filename Overview
install_nss.sh Adds runtime normalization, generated package indexes, CUDA 13 driver validation, help handling, and uv command construction.
tests/tools/test_install_nss.sh Covers CPU and CUDA dry-run commands, platform-specific CPU index behavior, help output, and unsupported runtime rejection.
tools/gen_cuda_deps.py Extends dependency generation and drift checking to keep installer indexes synchronized with the manifest.
.github/workflows/ci-checks.yml Runs installer dry-run validation in the end-user wheel-install job.
.github/workflows/container-build.yml Adds the CUDA 13.0 container variant to the build matrix.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Manifest[cuda_deps.toml] --> Generator[tools/gen_cuda_deps.py]
  Generator --> Metadata[pyproject.toml runtime metadata]
  Generator --> Installer[install_nss.sh generated indexes]
  User[Runtime selection] --> Installer
  Installer --> CPU[CPU install]
  Installer --> CU129[CUDA 12.9 install]
  Installer --> CU130[CUDA 13.0 install]
  Tests[Installer dry-run tests] --> Installer
Loading

Reviews (7): Last reviewed commit: "fix(ci): keep CUDA E2E task self-contain..." | Re-trigger Greptile

Comment thread tests/tools/test_install_nss.sh Outdated
Comment thread install_nss.sh
@binaryaaron
binaryaaron force-pushed the binaryaaron/cuda13/runtime-support branch from 4127e30 to 7b0ff2e Compare July 16, 2026 21:52
@binaryaaron
binaryaaron force-pushed the binaryaaron/cuda13/installer branch from 552467d to dceb950 Compare July 16, 2026 21:52
Comment thread install_nss.sh Outdated
@@ -0,0 +1,62 @@
#!/usr/bin/env bash

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hehe bash test scripts

@binaryaaron
binaryaaron force-pushed the binaryaaron/cuda13/runtime-support branch from 8629058 to 54c2fc2 Compare August 5, 2026 20:13
binaryaaron and others added 6 commits August 5, 2026 20:47
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Lands the coverage the previous PR's docs had prematurely claimed:

- Add a cu130 matrix row to container-build.yml so release images are
  actually built and published for both CUDA variants.
- Fix the cu130 GPU e2e lane, which silently re-bootstrapped cu129 via
  .mise/tasks/tests.toml's hardcoded bootstrap-nss call before running,
  so it tested cu129 twice instead of exercising cu130 at all. The e2e
  tasks now bootstrap $NSS_GPU_CUDA_EXTRA (default cu129, unchanged for
  local/other callers), and gpu-tests.yml sets it from the matrix.
- Flip docs, workflow diagram, and skip messages back to accurately
  describe cu130 as enabled now that both are true.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
@binaryaaron
binaryaaron force-pushed the binaryaaron/cuda13/installer branch from 029bd8f to 773a0af Compare August 5, 2026 23:20
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
andrewwhitecdw pushed a commit to andrewwhitecdw/Safe-Synthesizer that referenced this pull request Aug 13, 2026
…#655)

## Summary

this is one of three stacked prs (NVIDIA-NeMo#656, NVIDIA-NeMo#657) for our overdue
multiple-versions-of-cuda support. This one is the core mechanism for
generating the deps all from one place and handles instructions and docs
for new installation methods.

- Define CPU and CUDA runtime extras, conflicts, package sources, and
indexes in cuda_deps.toml.
- Generate the corresponding marked pyproject.toml sections from that
single source of truth.

## Validation

```
- uv run --offline --script tools/gen_cuda_deps.py cuda_deps.toml --pyproject pyproject.toml --check
- uv lock --check
```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary

* **New Features**
* Introduced a tool-managed workflow for CPU/CUDA runtime extras via
`cuda_deps.toml`, with automatic regeneration of dependency lists and
package source/index metadata.
  * Added a `--check`/lock-check flow to prevent CUDA metadata drift.

* **Documentation**
* Updated contributor, agent, README, Docker, and CI guidance to
regenerate from `cuda_deps.toml` and keep the lockfile in sync.

* **Quality & Tests**
* Added end-to-end coverage for generation, splicing, idempotency, and
error cases.

* **Chores / Style**
* Added `dprint`-based TOML formatting and expanded CI formatting
checks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants