CUDA 环境搭建与排错:驱动、toolkit、torch 三角关系的血泪史

谭老师524 阅读

搞本地大模型,第一道坎永远是 CUDA 环境。我前后在四五台机器上配过,几乎每次都出幺蛾子,这篇把最常见的问题和排查思路总结一下。

先理解三个东西:驱动(nvidia-smi 看到的那个)、CUDA Toolkit(编译环境)、PyTorch 里的 CUDA 运行时(cuDNN 之类)。它们三个的版本可以不完全一致,只要向下兼容就行。很多人被这个绕晕了。

问题一:nvidia-smi 有卡,但 torch.cuda.is_available() 返回 False。 八成是 PyTorch 装的是 CPU 版。检查方式:

Bash
python -c "import torch; print(torch.version.cuda)"

如果输出 None,就是 CPU 版。重装:

Bash
pip install torch --index-url https://download.pytorch.org/whl/cu124

问题二:驱动版本太老,装不了新版 Toolkit。nvidia-smi 右上角有个 CUDA Version,那是驱动支持的最高版本。装 Toolkit 别超过它,不然 nvcc 编译会报错。

问题三:Docker 容器里没有 GPU。宿主机 nvidia-smi 正常,容器里报 could not select device driver。这个基本就是没装 nvidia-container-toolkit,或者容器没加 --gpus all。

问题四:显存报错 CUDA out of memory。这个最常见也最烦。先看是不是别的进程占着卡:

code
nvidia-smi

再查是不是自己代码里缓存没清。如果是模型太大,就只能量化或者换小模型,这个没有捷径。

最后建议:装环境之前先记录好显卡型号和驱动版本,很多问题提前查好兼容性就能避免。

评论0

还没有评论,来抢沙发~