Software Stack Installation and Management (drivers, CUDA, containers)
What this domain tests
The install order and version contracts that make a GPU node usable: kernel driver, CUDA toolkit, container runtime integration, Fabric Manager, and DCGM, plus the compatibility rules that tie them together.
Core rules
- Install order. OS and kernel headers, firmware/BIOS, GPU driver (DKMS or precompiled), CUDA toolkit, container toolkit, then Fabric Manager and DCGM. Skipping kernel headers produces a driver that builds but does not load.
- Version contracts.
nvidia-smireports the maximum CUDA runtime the installed driver supports - that is a ceiling, not an installed toolkit version. Minor-version compatibility lets a 12.x app run on a 12.y driver within limits; crossing major versions requires the CUDA forward compatibility package or a driver upgrade. - Fabric Manager must match the driver exactly, including the minor build. This is the single most common post-upgrade breakage on HGX and DGX systems.
- Containers. The NVIDIA Container Toolkit injects devices and driver libraries; configure it with
nvidia-ctk runtime configure --runtime=docker, then verify withdocker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi. - Slurm sites typically use Enroot plus Pyxis, where
--container-imageneeds--container-mountsfor datasets and--nv-equivalent GPU passthrough.
Worked example
An application built against CUDA 12.4 fails at startup with "CUDA driver version is insufficient for CUDA runtime version". nvidia-smi reports CUDA Version 12.2 in the header. The reasoning: the driver's 12.2 ceiling cannot satisfy a 12.4 runtime, and this is a major-version gap, not a minor one. Two valid fixes - upgrade the driver to one that supports 12.4, or install the CUDA forward compatibility package inside the container. Restarting the app changes nothing.
Traps that cost marks
Reading the CUDA version from nvidia-smi as if it were the installed toolkit; upgrading the driver but not Fabric Manager; mixing a runfile install over a package-manager install and ending up with two driver versions.