CUDA安装避坑指南:驱动、CUDA与cuDNN版本匹配及多环境配置

发布时间:2026/10/25 16:02:50
CUDA安装避坑指南:驱动、CUDA与cuDNN版本匹配及多环境配置

1. 环境准备与版本选型:别急着敲安装命令

装 CUDA 这件事,十个人里有八个第一次都会翻车。翻车的原因基本不在安装过程本身,而是在动手之前没搞清楚三件事:我的显卡支持哪个 CUDA 版本、我的驱动版本够不够、我到底需要的是运行时还是完整工具包。这三个问题不解决,后面敲再多命令都是白费。

1.1 先搞清楚 CUDA、驱动、cuDNN 三者的关系

很多新手会把这三个东西混为一谈,觉得装了一个就万事大吉。实际上它们是一条链上的三个环节,缺一不可,但职责完全不同。

打个比方,N 卡驱动是操作系统和显卡之间的翻译官,没有它,系统根本不知道显卡在说什么。CUDA是建立在驱动之上的计算平台,它让开发者能用显卡做通用计算,而不只是打游戏。cuDNN则是专门为深度学习优化的加速库,它跑在 CUDA 之上,把卷积、池化这些神经网络常用操作做到极致。

所以正确的安装顺序是:先装驱动,再装 CUDA Toolkit,最后装 cuDNN。顺序反了,或者跳着装,都会出问题。

这里有个关键点:CUDA Toolkit 自带一个驱动版本,但通常比你系统里已经装好的驱动要旧。如果你在安装 CUDA 时勾选了驱动组件,它可能会把你的驱动降级,导致其他依赖新驱动的软件出问题。我的建议是,安装 CUDA 时取消勾选驱动组件,只装 Toolkit 本身,驱动单独用官方渠道更新。

1.2 用 nvidia-smi 确认驱动版本和最高支持的 CUDA 版本

在动手之前,先打开终端敲一条命令:

nvidia-smi

这条命令会输出一个表格,右上角有一行CUDA Version: 12.4之类的信息。注意,这个数字不是你当前安装的 CUDA 版本,而是你的驱动最高能支持的 CUDA 版本。换句话说,你可以安装任何小于等于这个版本的 CUDA Toolkit。

比如你的nvidia-smi显示CUDA Version: 12.4,那你可以装 12.4、12.3、11.8、11.3,都没问题。但如果你想装 12.6,那就得先升级驱动。

如果nvidia-smi命令找不到,说明驱动没装好或者没装。这时候先别折腾 CUDA,把驱动搞定再说。

1.3 根据显卡型号和框架需求锁定 CUDA 版本

这一步是最容易出错的。很多人看到最新版 CUDA 就手痒想装,结果发现 PyTorch 还不支持,或者自己的老显卡根本跑不起来。

先看显卡。不同架构的显卡支持的 CUDA 版本有上限。比如 40 系显卡(Ada Lovelace 架构)需要 CUDA 11.8 及以上才能发挥完整性能,而一些老卡比如 GTX 750 Ti(Maxwell 架构)最高只能用到 CUDA 11.4 左右。如果你用的是 4060 Ti,那 CUDA 11.8 到 12.x 都是安全区间。

再看框架。这是决定性的因素。PyTorch、TensorFlow 这些框架对 CUDA 版本有明确的对应关系。比如 TensorFlow 2.5.0 官方只支持 CUDA 11.2 和 cuDNN 8.1,你装个 CUDA 12.x 上去,它根本找不到对应的库。PyTorch 稍微灵活一些,但也要看官方提供的预编译包对应哪个 CUDA 版本。

所以正确的做法是:先确定你要用的框架版本,查它的官方文档看支持哪个 CUDA 版本,再确认你的显卡和驱动能不能支持这个版本。三个条件都满足了,再动手。

框架版本推荐 CUDA推荐 cuDNN最低驱动版本
TensorFlow 2.5.011.28.1450.80.02
TensorFlow 2.13+11.88.6520.61.05
PyTorch 2.0+11.88.7520.61.05
PyTorch 2.2+12.18.9530.30.02
llama.cpp (CUDA)11.7+不强制450.80.02

这张表是我自己踩坑之后整理的,实际选型时以官方文档为准,但大方向不会错。

1.4 多版本 CUDA 共存的思路

有时候你需要在同一台机器上跑不同的项目,一个要 CUDA 11.8,一个要 CUDA 12.1。这时候不需要反复卸载重装,CUDA 本身支持多版本共存。

安装时,每个版本的 CUDA 会放在/usr/local/cuda-11.8、/usr/local/cuda-12.1这样的独立目录下。/usr/local/cuda只是一个软链接,指向当前默认版本。你只需要在切换时改一下环境变量PATH和LD_LIBRARY_PATH,或者用update-alternatives来管理。

Windows 下同理,不同版本的 CUDA 会装在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8和v12.1这样的目录里,切换时改环境变量即可。

注意:多版本共存时,cuDNN 的版本要和当前使用的 CUDA 版本匹配。不要把 cuDNN 8.9 的库文件复制到 CUDA 11.8 的目录里,会出各种奇怪的错误。

2. Windows 平台安装实操:从驱动到 cuDNN 的完整流程

Windows 下的安装比 Linux 稍微麻烦一点,主要是环境变量和路径的问题。但只要按步骤来,也不会出大问题。

2.1 驱动安装与验证

驱动是第一步。去 NVIDIA 官网的驱动下载页面,选择你的显卡型号和操作系统版本,下载对应的驱动安装包。安装过程没什么好说的,一路下一步就行,但有两个地方要注意。

第一,安装类型选自定义而不是精简。精简模式会装一些你可能不需要的组件,比如 GeForce Experience,这东西对计算任务没用,还占资源。自定义模式下,你只需要勾选图形驱动程序和CUDA两个组件,其他都可以取消。

第二,安装完成后必须重启。不重启的话,驱动虽然显示装好了,但nvidia-smi可能读不到显卡信息。

重启之后,打开命令提示符,敲nvidia-smi。如果能看到显卡信息表格,说明驱动装好了。如果提示“不是内部或外部命令”,说明nvidia-smi.exe所在的目录没有加到PATH环境变量里。这个文件通常在C:\Program Files\NVIDIA Corporation\NVSMI或者C:\Windows\System32下,找到之后把目录加到PATH里就行。

2.2 CUDA Toolkit 安装与 nvcc 验证

驱动搞定之后,去 NVIDIA 的 CUDA Toolkit 下载页面,选择你需要的版本。下载类型选exe (local),不要选网络安装版,网络安装版下载速度慢还容易断。

安装时,选择自定义安装,然后取消勾选驱动组件。前面说过,CUDA 自带的驱动通常比你已有的驱动旧,勾选它会导致驱动降级。其他组件保持默认即可。

安装完成后,需要手动添加环境变量。CUDA 安装程序通常会自动添加CUDA_PATH和CUDA_PATH_V12_1这样的变量,但PATH里不一定有nvcc的路径。你需要检查PATH中是否包含:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp

如果没有,手动加上。然后打开一个新的命令提示符窗口,敲:

nvcc --version

如果输出类似Cuda compilation tools, release 12.1, V12.1.105的信息,说明 CUDA 装好了。

如果提示nvcc' 不是内部或外部命令,也不是可运行的程序或批处理文件,那就是PATH没配好。回去检查环境变量,确认路径拼写正确,然后重新打开一个命令行窗口再试。环境变量的修改只对新开的窗口生效,已经打开的窗口不会自动刷新。

2.3 cuDNN 安装与文件替换

cuDNN 的安装本质上就是复制文件。去 NVIDIA 开发者网站下载对应 CUDA 版本的 cuDNN 压缩包,解压之后你会看到bin、include、lib三个文件夹。

把这三个文件夹里的内容分别复制到 CUDA 安装目录下对应的文件夹里:

  • cudnn\bin\*→C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\
  • cudnn\include\*→C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include\
  • cudnn\lib\x64\*→C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64\

复制完成后,cuDNN 就算装好了。验证方法后面会讲。

注意:cuDNN 的版本必须和 CUDA 版本严格对应。cuDNN 8.9 对应 CUDA 12.x,cuDNN 8.6 对应 CUDA 11.8,cuDNN 8.1 对应 CUDA 11.2。版本不对应的话,运行时会报Could not locate cudnn_ops_infer64_8.dll之类的错误。

2.4 验证安装是否成功

装完之后,怎么确认一切正常?最直接的方法是跑一个 CUDA 自带的示例程序。

CUDA Toolkit 安装时会附带一些示例,但 Windows 下默认不安装。你可以在安装时勾选CUDA Samples,或者从 GitHub 上单独下载。

如果安装了示例,它们通常在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v12.1\下。进入1_Utilities\deviceQuery目录,用 Visual Studio 打开解决方案文件编译运行。如果输出显示Result = PASS,说明 CUDA 环境完全正常。

如果找不到示例,也可以用 Python 快速验证。装好 PyTorch 之后,运行:

import torch print(torch.cuda.is_available()) print(torch.version.cuda) print(torch.backends.cudnn.version())

如果第一行输出True,第二行输出你安装的 CUDA 版本,第三行输出 cuDNN 版本号,那就说明整条链路都通了。

3. Linux 与 WSL2 环境下的安装要点

Linux 下的安装逻辑和 Windows 一样,但操作方式不同。WSL2 又是在 Linux 基础上多了一层,有一些额外的坑。

3.1 Linux 原生环境的安装方式选择

Linux 下装 CUDA 有三种方式:runfile、deb 包、conda。每种方式各有优劣。

runfile是最灵活的方式,适合需要多版本共存或者没有 root 权限的场景。下载.run文件后,用sudo sh cuda_12.1.0_530.30.02_linux.run运行,安装过程中可以取消勾选驱动。缺点是安装后需要手动配置环境变量。

deb 包是最省事的方式,适合 Ubuntu 用户。用apt安装,依赖关系自动处理。缺点是版本更新可能滞后,而且不太方便多版本共存。

conda是最干净的方式,适合 Python 开发者。conda install cudatoolkit=11.8一条命令搞定,不污染系统环境。缺点是 conda 提供的 CUDA 版本有限,而且不包含nvcc编译器,只适合跑现成的框架,不适合自己编译 CUDA 代码。

我的建议是:如果你只是跑 PyTorch 或 TensorFlow,用 conda 最省心。如果你需要编译自定义 CUDA 算子,用 runfile 或 deb 包。

3.2 WSL2 下安装 CUDA 的特殊注意事项

WSL2 下装 CUDA 和原生 Linux 有一个本质区别:驱动不能装在 WSL2 里面,必须装在 Windows 宿主机上。

也就是说,你在 Windows 上装好 N 卡驱动之后,WSL2 会自动通过/usr/lib/wsl/lib下的库文件访问显卡。你不需要在 WSL2 里再装一遍驱动,装了反而会冲突。

WSL2 里只需要装 CUDA Toolkit 和 cuDNN。安装方式和原生 Linux 一样,用 runfile 或 deb 包都行。但要注意,WSL2 的 CUDA 版本必须和 Windows 宿主机驱动支持的版本匹配。如果 Windows 驱动只支持到 CUDA 12.1,你在 WSL2 里装 CUDA 12.4 就会出问题。

验证 WSL2 下 CUDA 是否可用,同样用nvidia-smi和nvcc --version。如果nvidia-smi能正常输出,说明 WSL2 的 GPU 直通没问题。

注意:WSL2 下nvidia-smi的输出可能和 Windows 下略有不同,比如不显示功耗信息。这是正常的,不影响计算功能。

3.3 环境变量配置的差异

Linux 下配置 CUDA 环境变量,需要编辑~/.bashrc或~/.zshrc,添加:

export PATH=/usr/local/cuda-12.1/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH

如果要多版本切换,可以定义几个别名:

alias cuda11='export PATH=/usr/local/cuda-11.8/bin:$PATH && export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' alias cuda12='export PATH=/usr/local/cuda-12.1/bin:$PATH && export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH'

这样在终端里敲cuda11或cuda12就能快速切换。

WSL2 下的环境变量配置和原生 Linux 一样,但要注意 WSL2 的PATH默认会包含 Windows 的路径,有时候会导致nvcc找到 Windows 版本的而不是 WSL2 里的。如果遇到这种情况,把 WSL2 的 CUDA 路径放在PATH的最前面。

4. 常见问题排查与避坑指南

这一部分是我自己踩过的坑,以及帮别人排查问题时遇到的高频故障。每一条都是真实案例,不是从文档里抄的。

4.1 nvcc 命令找不到的三种原因

nvcc' 不是内部或外部命令这个问题太常见了,基本每个新手都会遇到。原因无非三种:

第一种,PATH 没配。这是最常见的。CUDA 安装时虽然会自动添加CUDA_PATH,但PATH里不一定包含bin目录。手动加上就行。

第二种,装了多个版本,PATH 指向了错误的版本。比如你装了 CUDA 11.8 和 12.1,但PATH里只有 11.8 的路径,敲nvcc --version显示的是 11.8。这时候要么改PATH,要么用完整路径/usr/local/cuda-12.1/bin/nvcc --version。

第三种,只装了 conda 的 cudatoolkit。conda 安装的 cudatoolkit 不包含nvcc,只包含运行时库。如果你需要nvcc,必须单独安装完整的 CUDA Toolkit。

4.2 驱动版本与 CUDA 版本不匹配的报错

这个问题的典型报错是:

CUDA driver version is insufficient for CUDA runtime version

意思是你的驱动太旧,不支持你安装的 CUDA 运行时。解决方法有两个:要么升级驱动,要么降级 CUDA。

还有一种情况是反过来,驱动太新,CUDA 太旧。这种通常不会报错,但可能有一些新功能用不了。一般不影响使用。

排查方法很简单,nvidia-smi看驱动支持的 CUDA 版本,nvcc --version看实际安装的 CUDA 版本,两者对比一下就知道有没有问题。

4.3 cuDNN 加载失败的排查思路

cuDNN 加载失败的报错通常长这样:

Could not locate cudnn_ops_infer64_8.dll

或者 Linux 下:

error while loading shared libraries: libcudnn.so.8: cannot open shared object file

原因通常是三个:cuDNN 没装、cuDNN 版本和 CUDA 不匹配、cuDNN 的库文件路径没加到LD_LIBRARY_PATH里。

排查步骤:先确认 cuDNN 的文件是否复制到了 CUDA 目录下,然后确认版本对应关系,最后检查LD_LIBRARY_PATH是否包含 CUDA 的lib64目录。

Windows 下还有一个坑:cuDNN 的bin目录下的 dll 文件必须复制到 CUDA 的bin目录下,而不是lib目录。复制错了地方,运行时找不到。

4.4 多版本 CUDA 切换后框架找不到库的问题

多版本共存时,切换 CUDA 版本后,PyTorch 或 TensorFlow 可能还是加载旧版本的库。这是因为这些框架在编译时链接了特定版本的 CUDA 库,运行时通过LD_LIBRARY_PATH查找。

如果你切换了LD_LIBRARY_PATH但框架还是报错,可能是框架自带的 CUDA 库优先于系统库。PyTorch 的 pip 包自带 CUDA 运行时,它会优先使用自带的库,而不是系统安装的。这种情况下,你需要安装对应 CUDA 版本的 PyTorch,而不是试图让一个 PyTorch 版本适配多个 CUDA 版本。

4.5 常见问题速查表

问题现象可能原因解决方法
nvidia-smi 找不到驱动没装或 PATH 没配安装驱动,添加 NVSMI 目录到 PATH
nvcc 不是内部或外部命令CUDA bin 目录不在 PATH添加 CUDA bin 目录到 PATH
CUDA driver version is insufficient驱动太旧升级驱动或降级 CUDA
Could not locate cudnn_ops_infer64_8.dllcuDNN 未安装或版本不匹配安装对应版本 cuDNN,复制文件到正确目录
torch.cuda.is_available() 返回 False驱动、CUDA、PyTorch 版本不匹配检查三者版本对应关系
WSL2 下 nvidia-smi 无输出Windows 驱动未安装或版本过旧在 Windows 宿主机安装最新驱动
多版本切换后框架报错框架自带 CUDA 库优先安装对应 CUDA 版本的框架

4.6 几个容易被忽略的细节

第一个,安装 CUDA 时取消勾选驱动组件。这个前面说过,但值得再强调一次。CUDA 自带的驱动版本通常比你已有的旧,勾选它会导致驱动降级,可能影响其他软件。

第二个,cuDNN 的文件复制要对应目录。Windows 下是bin对bin、include对include、lib\x64对lib\x64。Linux 下是lib64对lib64。复制错了地方,运行时找不到。

第三个,环境变量修改后要新开终端。已经打开的终端不会自动刷新环境变量,必须关掉重开。

第四个,WSL2 下不要装驱动。WSL2 的驱动由 Windows 宿主机提供,在 WSL2 里装驱动会冲突。

第五个,conda 安装的 cudatoolkit 不含 nvcc。如果你需要编译 CUDA 代码,必须安装完整的 CUDA Toolkit。

5. 版本迁移与升级的实操建议

有时候你不得不升级 CUDA 版本,比如换了新显卡,或者新框架要求更高的 CUDA 版本。升级这件事,做得好就是平滑过渡,做不好就是环境崩溃。

5.1 升级前的备份与检查清单

升级之前,先做三件事。

第一,记录当前环境。运行nvidia-smi、nvcc --version、pip list | grep torch(或 tensorflow),把输出保存下来。万一升级失败,可以对照着回滚。

第二,确认新版本的兼容性。新 CUDA 版本是否支持你的显卡?新框架版本是否支持新 CUDA?驱动是否需要同步升级?这些问题都要提前查清楚。

第三,备份重要环境。如果是 conda 环境,用conda env export > environment.yml导出。如果是系统环境,至少把~/.bashrc备份一份。

5.2 平滑迁移的步骤

升级 CUDA 最稳妥的方式是并行安装,逐步切换。

先在系统里安装新版本的 CUDA,不要卸载旧版本。安装时选择不同的目录,比如/usr/local/cuda-12.4。然后修改环境变量,把PATH和LD_LIBRARY_PATH指向新版本。测试新版本是否正常工作。如果一切正常,再考虑是否卸载旧版本。

如果新版本有问题,把环境变量改回旧版本即可,不需要重装。

Windows 下同理,新版本 CUDA 会装在独立的目录里,改环境变量就能切换。

5.3 升级后框架重新适配的注意事项

CUDA 升级后,PyTorch 和 TensorFlow 通常需要重新安装对应版本。因为框架的预编译包是针对特定 CUDA 版本编译的,CUDA 升级后旧框架可能无法正常工作。

比如你从 CUDA 11.8 升级到 12.1,PyTorch 也需要从cu118版本换成cu121版本。安装命令类似:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

TensorFlow 的安装方式类似,但 TensorFlow 对 CUDA 版本的要求更严格,通常只支持特定的一两个版本。升级前务必查官方文档。

注意:升级 CUDA 后,cuDNN 也需要同步升级到对应版本。不要只升级 CUDA 而忘了 cuDNN。

5.4 回滚方案

如果升级后问题太多,回滚是最后的手段。回滚的步骤和升级相反:把环境变量改回旧版本,重新安装旧版本的框架,如果需要的话卸载新版本 CUDA。

回滚的关键是旧版本不要急着删。只要旧版本的目录还在,环境变量改回去就能用。这也是为什么我建议并行安装而不是覆盖安装。

6. 几个真实场景的排查实录

这一部分记录几个我实际遇到过的案例,每个案例都有完整的排查过程和解决方法。这些场景在文档里找不到,但实际工作中很常见。

6.1 场景一:4060 Ti 装完 CUDA 后 PyTorch 用不了

有个朋友新买了 4060 Ti,装完驱动和 CUDA 12.1 之后,装 PyTorch 发现torch.cuda.is_available()返回False。

排查过程:先看nvidia-smi,正常输出,驱动没问题。再看nvcc --version,显示 CUDA 12.1,也没问题。然后看 PyTorch 版本,发现他装的是cu118版本的 PyTorch。

问题就在这里:PyTorch 的cu118版本自带 CUDA 11.8 运行时,它不会使用系统的 CUDA 12.1。而 4060 Ti 需要 CUDA 11.8 及以上才能正常工作,但 PyTorch 自带的 CUDA 11.8 运行时和系统驱动之间可能存在兼容问题。

解决方法:卸载cu118版本的 PyTorch,安装cu121版本。命令:

pip uninstall torch torchvision pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

重装之后,torch.cuda.is_available()返回True,问题解决。

这个案例的教训是:PyTorch 自带的 CUDA 运行时和系统 CUDA 是两回事。装 PyTorch 时要选对 CUDA 版本,不要以为系统装了 CUDA 12.1,PyTorch 就能用上。

6.2 场景二:WSL2 下 nvidia-smi 正常但 nvcc 找不到

有人在 WSL2 里装 CUDA,nvidia-smi能正常输出,但nvcc --version提示找不到命令。

排查过程:先确认 CUDA 是否安装成功,检查/usr/local/cuda-12.1/bin/nvcc是否存在。发现文件存在,说明 CUDA 装好了。然后检查PATH,发现PATH里包含的是 Windows 的 CUDA 路径,而不是 WSL2 里的路径。

问题在于 WSL2 默认会把 Windows 的PATH追加到 Linux 的PATH后面。如果 Windows 里也装了 CUDA,nvcc可能会优先找到 Windows 版本,但 Windows 的.exe文件在 WSL2 里无法执行,所以报错。

解决方法:在~/.bashrc里把 WSL2 的 CUDA 路径放在PATH最前面:

export PATH=/usr/local/cuda-12.1/bin:$PATH

然后source ~/.bashrc,再试nvcc --version,正常输出。

这个案例的教训是:WSL2 的 PATH 会继承 Windows 的路径,容易造成冲突。安装 CUDA 后要检查PATH的顺序,确保 WSL2 的路径优先。

6.3 场景三:多版本 CUDA 切换后 cuDNN 报错

有人需要在同一台机器上跑两个项目,一个要 CUDA 11.8,一个要 CUDA 12.1。他装了两个版本的 CUDA,用别名切换。但切换到 CUDA 11.8 后,运行项目报错libcudnn.so.8: cannot open shared object file。

排查过程:检查LD_LIBRARY_PATH,发现切换别名只改了PATH,没改LD_LIBRARY_PATH。LD_LIBRARY_PATH还指向 CUDA 12.1 的lib64目录,而 cuDNN 8.9 是为 CUDA 12.1 编译的,和 CUDA 11.8 不兼容。

解决方法:修改别名,同时改PATH和LD_LIBRARY_PATH:

alias cuda11='export PATH=/usr/local/cuda-11.8/bin:$PATH && export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH'

切换后重新运行项目,问题解决。

这个案例的教训是:切换 CUDA 版本时,PATH 和 LD_LIBRARY_PATH 要一起改。只改一个会导致库文件找不到或者版本不匹配。

6.4 场景四:llama.cpp 编译时提示 CUDA 不兼容

有人想用 llama.cpp 的 CUDA 加速,编译时提示non compatible CUDA。

排查过程:检查 CUDA 版本,发现装的是 CUDA 12.4,但 llama.cpp 当时只支持到 CUDA 12.1。版本太新,llama.cpp 的编译脚本不认。

解决方法:安装 CUDA 12.1,切换到 12.1 后重新编译。或者等 llama.cpp 更新支持 CUDA 12.4。

这个案例的教训是:不是越新的 CUDA 越好。很多开源项目对 CUDA 版本有明确要求,装之前先看项目的文档。

7. 收尾的一些个人经验

装 CUDA 这件事,说难不难,说简单也不简单。核心就一句话:版本对应关系搞清楚,环境变量配好,剩下的就是体力活。

我自己的习惯是,每装一个新环境,先跑一遍nvidia-smi、nvcc --version、python -c "import torch; print(torch.cuda.is_available())"这三条命令。三条都正常,环境就没问题。有一条不正常,就按前面说的排查思路一步步来。

还有一点,不要怕重装。CUDA 环境出问题,很多时候重装比修复快。但重装之前,把版本对应关系搞清楚,不然重装多少次都是一样的结果。

最后分享一个小技巧:如果你不确定某个框架需要哪个 CUDA 版本,去它的官方文档或者 GitHub 的 release notes 里搜CUDA,通常能找到明确的版本要求。不要凭感觉猜,猜错了浪费的是自己的时间。