Use CUDA 12.9.86 compiler toolchain (nvcc, ptxas, cicc) for better GPU
code generation while keeping CUDA 12.8 headers/libs for runtime
compatibility with PyTorch cu128 wheels.
nvcc is replaced (not just ptxas/cicc) so that setup.py's
get_nvcc_cuda_version() reports 12.9, which is required for FlashMLA
registration. PyTorch's CMake nvcc-vs-header version check is patched
to a warning in base (for extensions-build), csrc-build, and build
stages (re-applied after torch pip reinstall overwrites cmake files).
Controlled by ARG MIN_NVCC_TOOLCHAIN_VERSION (default 12.9.86):
- Skipped if system nvcc is already >= the specified version
- Set to empty string to disable entirely
- Archive integrity verified via SHA256 checksums from NVIDIA's
redistrib manifest
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
PyTorch official PyPI wheels are built on CUDA 12.8, so pip install vllm
with a cu129 wheel pins nvidia-cublas-cu12 to 12.8 and causes a runtime
conflict (pytorch/pytorch#174949). Downgrade the default CUDA version so
the CI image, test image, and PyPI wheel all use cu128 consistently.
- Dockerfile: CUDA_VERSION 12.9.1 → 12.8.1
- requirements/test.txt: recompile lockfile with --torch-backend cu128
- .pre-commit-config.yaml: match pip-compile hook to cu128
- docker/versions.json: regenerated
Release builds (cu129, cu130) are unaffected since they pass explicit
--build-arg CUDA_VERSION overrides.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>