The quay.io/manylinux_cuda image ships the CUDA toolkit but omits the
libcuda driver stub (cuda-driver-devel). Without it CMake's FindCUDA
leaves CUDA_CUDA_LIBRARY empty, and since a shared library links fine
with undefined symbols, libtvm_runtime_cuda built with no libcuda.so.1
dependency -- ldd/readelf did not list it -- breaking downstream use.
Install cuda-driver-devel-13-1 from the CUDA repo already configured in
the image (a ~45 KB package with no dependencies, not the full toolkit
download). The stub lands under /usr/local/cuda/.../stubs where FindCUDA
looks, so the sidecar links libcuda.so.1 again.
Also fail CMake configure with a clear error when CUDA_CUDA_LIBRARY is
unset, so a missing driver stub can never again silently ship a runtime
sidecar without its libcuda dependency.
This pr is the follow-up pr of #19754. It removes the redundant `pip
install -U pip cmake ninja` (since those are already installed in
docker) and the unused python_bin variable, and update the comment to
match: the image provides the build tools, and PATH only needs the
bundled CPython (for the configure) plus the CUDA toolchain (for nvcc).
Also fixs a stale comment in the Windows sidecar: it claimed the conda
13.0.2 pin matched the Linux hook, but the Linux side is now CUDA 13.1
(from the image). The win-64 nvidia channel still caps at 13.0.x, so
Windows stays on 13.0.2 -- slightly behind Linux but harmless, since the
sidecar has no device code and links the CUDA runtime by soname only.
The Windows pip install is kept: that build uses the Ninja generator and
runs on a runner without the prebuilt CUDA image.
This pr follows the cibuildwheel 4.0 announcement, the official prebuilt
quay.io/manylinux_cuda images ship the CUDA toolkit preinstalled under
/usr/local/cuda on the same manylinux_2_28 baseline the wheel targets.
also switchs the Linux build_cuda_runtime sidecar legs to
quay.io/manylinux_cuda/manylinux_2_28_{x86_64,aarch64}_cuda13_1 and drop
the per-run NVIDIA local-repo RPM download plus dnf install of the
toolkit, which pulled several GB from developer.download.nvidia.com on
every run and was the main source of sidecar build-time variance. This
moves the Linux sidecar from CUDA 13.0.2 to 13.1; the soname stays
libcudart.so.13, so the repair-step glob excludes (libcudart.so.*) are
unaffected and the sidecar carries no device code. The Windows sidecar
keeps using conda and is unchanged.