Skip to content

fix: upgrade Docker build to CUDA 12.6 and Python 3.11#362

Open
sameeul wants to merge 1 commit into
PolusAI:mainfrom
sameeul:fix/docker-cuda12-python311
Open

fix: upgrade Docker build to CUDA 12.6 and Python 3.11#362
sameeul wants to merge 1 commit into
PolusAI:mainfrom
sameeul:fix/docker-cuda12-python311

Conversation

@sameeul

@sameeul sameeul commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Upgrades the GPU Docker build to CUDA 12.6 and Python 3.11:

  • Dockerfile base image nvidia/cuda:11.5.2-runtime-ubuntu20.04nvidia/cuda:12.6.0-runtime-ubuntu22.04
  • conda_linux_gpu.txt: replace cudatoolkit=11.5 / cudatoolkit-dev=11.5 with the CUDA 12.6 conda-forge packages that actually ship nvcc (cuda-version=12.6, cuda-nvcc=12.6, cuda-cudart-dev=12.6, libcufft-dev)
  • build_conda.sh: add -DCMAKE_CUDA_COMPILER=$CONDA_PREFIX/bin/nvcc so CMake doesn't rely on check_language(CUDA) discovery, and bump PYTHON=3.93.11 (3.9 is EOL)
  • publish_docker.yml: update the hardcoded nyxus-3.9 env path to nyxus-3.11

Root cause (the CUDA fix)

cudatoolkit-dev=11.5.0 installs headers/libs but doesn't place nvcc where CMake's check_language(CUDA) looks, so CMake reported CMAKE_CUDA_COMPILER=NOTFOUND and hit the fatal error in CMakeLists.txt. The CUDA 12.6 conda-forge packages ship nvcc, and passing -DCMAKE_CUDA_COMPILER explicitly makes discovery deterministic.

Rebased onto the z5 3.0.1 upgrade

This branch previously carried two extra commits that worked around the old z5 2.0.20 + xtensor stack in the Docker build:

  • "check for z5/multiarray/xtensor_access.hxx instead of z5/z5.hxx"
  • "install z5 2.0.20 C++ headers in Docker build script"

Both are moot now that the z5 3.0.1 upgrade is merged into main: CMake looks for z5/z5.hxx again, and the z5 C++ headers come from the z5py >=3.0.1 conda package in conda_cpp.txt (no manual header install needed). The branch has been rebased onto the current main and those two commits dropped, leaving only the Docker/CUDA/Python change.

Note the Python 3.11 bump is now also required for the GPU build to solve, not just a nicety: z5py 3.0.x has no Python 3.10/3.9 build (3.11+ only), and build_conda.sh pulls z5 via conda_cpp.txt (z5py >=3.0.1).

Test plan

  • Trigger the Publish Docker image workflow on this branch and confirm the "Run Build Script" step passes (CUDA build + z5 3.0.1 via z5py on Python 3.11).

🤖 Generated with Claude Code

- Replace cudatoolkit=11.5 conda packages with cuda-version=12.6,
  cuda-nvcc=12.6, cuda-cudart-dev=12.6, libcufft-dev (conda-forge
  CUDA 12 package names that include nvcc)
- Add -DCMAKE_CUDA_COMPILER=$CONDA_PREFIX/bin/nvcc so CMake finds
  the conda nvcc without relying on check_language(CUDA) discovery
- Bump PYTHON=3.9 -> 3.11 in build_conda.sh (3.9 is EOL)
- Update Dockerfile base image from nvidia/cuda:11.5.2-runtime-ubuntu20.04
  to nvidia/cuda:12.6.0-runtime-ubuntu22.04
- Update hardcoded nyxus-3.9 env path in publish_docker.yml to nyxus-3.11

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sameeul sameeul requested a review from darkclad July 2, 2026 14:09
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