1. 硬件环境检查你的显卡能跑多高版本的CUDA刚拿到新机器或者准备升级PyTorch环境时第一件事不是急着下载安装包而是先看看你的显卡能支持到什么程度。我见过太多新手兴冲冲装了最新版CUDA结果发现显卡根本不支持最后只能灰溜溜重装。查看显卡支持的最高CUDA版本只需要在命令行敲这个魔法指令nvidia-smi你会看到类似这样的输出----------------------------------------------------------------------------- | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | || | 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | N/A | | 30% 45C P8 15W / 180W | 682MiB / 8192MiB | 0% Default | ---------------------------------------------------------------------------这里的关键信息是右上角的CUDA Version: 12.2它表示当前驱动支持的最高CUDA版本。有个重要原则你可以安装等于或低于这个版本的CUDA但绝对不能安装更高版本。就像你的手机系统升级需要硬件支持一样CUDA版本也需要显卡驱动的支持。小贴士如果nvidia-smi命令报错大概率是你的显卡驱动没装好。NVIDIA官网有详细的驱动安装指南建议优先安装官方推荐的最新稳定版驱动。2. 版本组合选择CUDA、cuDNN、PyTorch的黄金搭档现在你知道显卡能支持的最高CUDA版本了但别急着安装PyTorch对CUDA版本有特定要求而cuDNN又得和CUDA版本匹配。这就像玩俄罗斯套娃必须找到完美契合的组合。2.1 CUDA与cuDNN版本对应表我整理了2024年最新的兼容组合数据来自NVIDIA官方文档CUDA版本推荐cuDNN版本12.x8.9.x11.88.6.x11.78.5.x11.68.4.x11.58.3.x为什么需要cuDNN简单说cuDNN是NVIDIA专门为深度学习优化的加速库。没有它你的神经网络训练速度会慢得像蜗牛。但cuDNN必须和CUDA版本严格匹配否则要么报错要么性能大幅下降。2.2 PyTorch与CUDA的婚姻关系PyTorch官方为不同CUDA版本提供了预编译的wheel包。选错组合会导致安装失败或者运行时错误。以下是当前主流组合PyTorch版本支持CUDA版本备注2.3.x12.1, 11.8最新稳定版2.2.x11.8, 11.7长期支持版本2.1.x11.8, 11.7适合保守用户2.0.x11.7, 11.8兼容性最好血泪教训不要盲目追求最新版本我去年在一个项目上用了PyTorch 2.3 CUDA 12.1结果发现常用的torchvision插件还不支持这个组合耽误了一周时间降级。3. 实战安装手把手教你避开所有坑理论讲完了现在进入实战环节。我会分别演示Windows和Linux下的安装流程这些都是我亲自踩过无数坑后总结的最佳实践。3.1 Windows环境安装指南步骤1安装CUDA Toolkit访问 NVIDIA CUDA Toolkit Archive选择与你的驱动兼容的版本比如11.8下载exe安装包运行后选择自定义安装关键步骤取消勾选Visual Studio Integration除非你确实需要步骤2安装cuDNN下载对应版本的cuDNN压缩包需要注册NVIDIA账号解压后将bin、include、lib文件夹复制到CUDA安装目录默认是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8添加环境变量C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin步骤3安装PyTorch打开Anaconda Prompt创建并激活虚拟环境conda create -n pytorch_env python3.10 conda activate pytorch_env使用官方推荐命令安装以CUDA 11.8为例pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118常见坑点国内用户可能会遇到下载慢的问题。可以添加清华镜像源-i https://pypi.tuna.tsinghua.edu.cn/simple3.2 Linux环境安装指南步骤1安装CUDAwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ / sudo apt-get update sudo apt-get -y install cuda-11-8步骤2配置环境变量在~/.bashrc末尾添加export PATH/usr/local/cuda-11.8/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}然后执行source ~/.bashrc步骤3验证安装nvcc --version # 应该显示CUDA 11.8 nvidia-smi # 检查GPU状态4. 环境验证与故障排除安装完成后别急着庆祝先做这几个关键检查基础测试import torch print(torch.__version__) # 查看PyTorch版本 print(torch.cuda.is_available()) # 应该返回True print(torch.cuda.get_device_name(0)) # 显示你的GPU型号性能测试# 测试CUDA张量运算 x torch.randn(10000, 10000).cuda() y torch.randn(10000, 10000).cuda() z x y # 矩阵乘法 print(z.mean()) # 如果没有报错且输出数值说明一切正常常见问题解决方案torch.cuda.is_available()返回False检查CUDA和PyTorch版本是否匹配确保安装了正确的显卡驱动尝试重启电脑真的有用ImportError: libcudart.so.11.0: cannot open shared object file检查LD_LIBRARY_PATH环境变量运行ldconfig -p | grep cuda确认库文件位置CUDA out of memory减小batch size使用torch.cuda.empty_cache()清理缓存5. 高级技巧多版本CUDA共存与管理有时候我们需要在不同项目中使用不同版本的CUDA这时候可以用以下技巧方法1使用conda环境隔离conda create -n cuda11.8 python3.8 conda activate cuda11.8 conda install cudatoolkit11.8 -c nvidia方法2手动切换符号链接Linuxsudo rm /usr/local/cuda sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda方法3使用Docker容器docker run --gpus all -it nvidia/cuda:11.8.0-base个人建议对于长期项目最好固定所有依赖版本。我曾经因为自动升级导致整个项目瘫痪现在所有环境都用requirements.txt严格锁定版本。最后提醒一点深度学习环境配置是个精细活遇到问题时保持耐心仔细检查版本兼容性。记住Google和Stack Overflow是你最好的朋友大多数坑早就有人踩过并提供了解决方案。