96461a3e18
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.
TVM wheel packaging
The wheels are built by a standard cibuildwheel flow, configured in
.github/workflows/publish_wheel.yml and pyproject.toml ([tool.cibuildwheel]
and [tool.scikit-build]). This directory holds the few helper scripts that flow
invokes:
manylinux_build_libtvm_runtime_cuda.sh— run by thebuild_cuda_runtimeCI stage; builds thelibtvm_runtime_cuda.sosidecar inside the prebuiltquay.io/manylinux_cudaimage (CUDA toolkit preinstalled).windows_build_libtvm_runtime_cuda.bat— the Windows equivalent (run withshell: cmd); installs the CUDA toolkit via conda and buildstvm_runtime_cuda.dll.build-environment.yaml— conda environment for building the wheel.