Updating pytorch 2.10 and CUDA to 12.8 and 13.0#516
Updating pytorch 2.10 and CUDA to 12.8 and 13.0#516swahtz wants to merge 9 commits intoopenvdb:mainfrom
Conversation
…s/build/deploy CI Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
…ackages bucket) Updated gcc version to 14.2 to match VFX Platform 2026 Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Update command syntax in nanovdb_editor CMake file to remove '-l' to not re-source /etc/profile and shell startup scripts which can reset PATH and makes us pickup the wrong 'ninja' Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
…a binary Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
There was a problem hiding this comment.
Pull request overview
Updates the project’s CI/build configuration and conda environments to support CUDA 13.0 and PyTorch 2.10 (plus related toolchain bumps), and improves build/publish workflow flexibility.
Changes:
- Bump conda environments to
cuda-version=13.0,pytorch-gpu=2.10.0, and GCC/GXX 14.2; refresh a few pins and wheel URLs. - Update GitHub Actions workflows to install
torch==2.10.0explicitly and extend publish matrices to CUDA 12.8 + 13.0. - Improve build tooling by auto-detecting Ninja and plumbing
CMAKE_MAKE_PROGRAMthrough the build + nanovdb_editor build step.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/cmake/get_nanovdb_editor.cmake |
Passes CMAKE_MAKE_PROGRAM through to the nanovdb_editor wheel build. |
env/test_environment.yml |
Updates CUDA/PyTorch versions and switches TorchSparse/Scatter wheel URLs for PT 2.10 + CUDA 13.0. |
env/learn_environment.yml |
Updates CUDA/PyTorch versions and corresponding pip wheel URLs. |
env/dev_environment.yml |
Updates CUDA/PyTorch and GCC/GXX; relaxes pybind11 pin; updates wheel URLs. |
env/build_environment.yml |
Updates CUDA/PyTorch and GCC/GXX; relaxes pybind11 pin; trims some packages. |
build.sh |
Detects ninja/ninja-build and forwards it via CMAKE_MAKE_PROGRAM. |
.github/workflows/publish.yml |
Expands publish matrix to CUDA 12.8 + 13.0 and adds CUDA-image selection + dynamic auditwheel excludes. |
.github/workflows/nightly.yml |
Updates workflow paths to use repo-root env/, dist/, tests/, build/ locations. |
.github/workflows/nightly-publish.yml |
Adds repo gate for nightly publish; expands matrix to CUDA 12.8 + 13.0; dynamic CUDA image selection + auditwheel excludes. |
.github/workflows/docs.yml |
Updates CONDA_OVERRIDE_CUDA to 13.0 and passes it into micromamba setup. |
.github/workflows/cu130.yml |
Pins torch==2.10.0 in UV install steps for CUDA 13.0 jobs. |
.github/workflows/cu130-nightly.yml |
Pins torch==2.10.0 in UV install steps for CUDA 13.0 nightly jobs. |
.github/workflows/cu128.yml |
Pins torch==2.10.0 in UV install steps for CUDA 12.8 jobs. |
.github/workflows/cu128-nightly.yml |
Pins torch==2.10.0 in UV install steps for CUDA 12.8 nightly jobs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| run: | | ||
| uv venv | ||
| uv pip install --no-cache-dir -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 | ||
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 |
There was a problem hiding this comment.
fvdb/env/build_requirements.txt does not exist in this repository (requirements files live under env/). This will cause the dependency install step to fail; update the path to the correct location.
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 | |
| uv pip install --no-cache-dir torch==2.10.0 -r env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 |
| run: | | ||
| uv venv | ||
| uv pip install --no-cache-dir -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 | ||
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 |
There was a problem hiding this comment.
fvdb/env/test_requirements.txt does not exist in this repository (requirements files live under env/). This will cause the dependency install step to fail; update the path to the correct location.
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 | |
| uv pip install --no-cache-dir torch==2.10.0 -r env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu128 |
| include: | ||
| - cuda-version: '12.8' | ||
| cuda-image-tag: '12.8.1' | ||
| - cuda-version: '13.0' | ||
| cuda-image-tag: '13.0.2' |
There was a problem hiding this comment.
The matrix.include entries only specify cuda-version and cuda-image-tag. In GitHub Actions this adds additional matrix jobs (with missing python-version/torch-version) rather than attaching cuda-image-tag to the existing Cartesian product, which will make steps like actions/setup-python and runner labels evaluate with empty matrix values. Prefer deriving cuda-image-tag from matrix.cuda-version via an expression/step output, or switch to an include-only matrix where each included entry specifies all matrix keys (python/torch/cuda + cuda-image-tag).
| - cuda-version: '12.8' | ||
| cuda-image-tag: '12.8.1' | ||
| - cuda-version: '13.0' | ||
| cuda-image-tag: '13.0.2' |
There was a problem hiding this comment.
Same matrix issue as in publish.yml: the include block here will create extra jobs that don't define python-version/torch-version, but later the workflow references those variables (runner label, setup-python, etc.). Use a mapping expression/step output for cuda-image-tag, or expand include to fully specify each matrix combination instead of mixing it with the Cartesian product.
| - cuda-version: '12.8' | |
| cuda-image-tag: '12.8.1' | |
| - cuda-version: '13.0' | |
| cuda-image-tag: '13.0.2' | |
| - python-version: '3.10' | |
| torch-version: '2.10' | |
| cuda-version: '12.8' | |
| cuda-image-tag: '12.8.1' | |
| - python-version: '3.11' | |
| torch-version: '2.10' | |
| cuda-version: '12.8' | |
| cuda-image-tag: '12.8.1' | |
| - python-version: '3.12' | |
| torch-version: '2.10' | |
| cuda-version: '12.8' | |
| cuda-image-tag: '12.8.1' | |
| - python-version: '3.13' | |
| torch-version: '2.10' | |
| cuda-version: '12.8' | |
| cuda-image-tag: '12.8.1' | |
| - python-version: '3.10' | |
| torch-version: '2.10' | |
| cuda-version: '13.0' | |
| cuda-image-tag: '13.0.2' | |
| - python-version: '3.11' | |
| torch-version: '2.10' | |
| cuda-version: '13.0' | |
| cuda-image-tag: '13.0.2' | |
| - python-version: '3.12' | |
| torch-version: '2.10' | |
| cuda-version: '13.0' | |
| cuda-image-tag: '13.0.2' | |
| - python-version: '3.13' | |
| torch-version: '2.10' | |
| cuda-version: '13.0' | |
| cuda-image-tag: '13.0.2' |
| run: | | ||
| uv venv | ||
| uv pip install --no-cache-dir -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 | ||
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 |
There was a problem hiding this comment.
fvdb/env/build_requirements.txt does not exist in this repository (the requirements files live under env/). This will cause the job to fail when installing dependencies. Update the path to the correct location (and keep it consistent with the other workflows updated in this PR).
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 | |
| uv pip install --no-cache-dir torch==2.10.0 -r env/build_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 |
| run: | | ||
| uv venv | ||
| uv pip install --no-cache-dir -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 | ||
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 |
There was a problem hiding this comment.
fvdb/env/test_requirements.txt does not exist in this repository (the requirements files live under env/). This will break dependency installation in the nightly test job; update the path to the correct location.
| uv pip install --no-cache-dir torch==2.10.0 -r fvdb/env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 | |
| uv pip install --no-cache-dir torch==2.10.0 -r env/test_requirements.txt --extra-index-url https://download.pytorch.org/whl/cu130 |
This pull request updates the CI and build/test/dev environments to support CUDA 13.0 and PyTorch 2.10, and streamlines related configurations. The changes ensure compatibility with newer CUDA and PyTorch versions across build, test, and publish workflows, and update dependency versions in the environment files. GCC was also updated to 14.2 to align with VFX Reference Platform 2026. Additionally, some workflow logic and build scripts are improved for flexibility and maintainability.
Build and Dependency Upgrades:
cuda-versionto 13.0 andpytorch-gputo 2.10.0 inenv/build_environment.ymlandenv/dev_environment.yml. Also upgradedgcc_linux-64andgxx_linux-64to 14.2, and removed or relaxed some package pins for improved compatibility. [1] [2] [3] [4]torch==2.10.0in all relevant GitHub Actions workflow steps to ensure consistent PyTorch version across CUDA 12.8 and 13.0 builds. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]CI Workflow Enhancements:
cuda-image-tagmappings and dynamic container image selection for both nightly and standard publish workflows. [1] [2] [3] [4]Miscellaneous Improvements:
build.sh) to automatically detect and use the availableninjabuild tool if present, enhancing build speed and reliability.closes #511