尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Ubuntu安装CUDA与cuDNN:版本匹配、多版本共存与排错实战

发布时间:2026/9/29 1:12:08

资讯中心
01
ARTICLE

Ubuntu安装CUDA与cuDNN:版本匹配、多版本共存与排错实战

Ubuntu安装CUDA与cuDNN:版本匹配、多版本共存与排错实战
Ubuntu 上装 CUDA 和 cuDNN真正让人头疼的往往不是命令本身而是版本链条没对齐显卡驱动太旧、CUDA Toolkit 和 cuDNN 大版本错位、nvcc和nvidia-smi显示的版本对不上、conda 环境里又混进一套运行库。结果就是明明按教程敲完了PyTorch 还是提示CUDA unavailableOpenCV 编译到一半找不到cudnn.h。这篇内容围绕 Ubuntu 安装 CUDA 和 cuDNN 这条主线把驱动、Toolkit、cuDNN、框架、Docker、OpenCV、多版本共存这些环节串起来讲清楚。适合刚装完 Ubuntu 准备跑深度学习的同学也适合需要在服务器上维护多套 CUDA 环境的运维和算法工程师。下面是我自己反复装机、踩坑、回滚之后整理出来的实操路线命令可以照着改思路更值得先看一遍。1. 先理清版本关系别把驱动、CUDA、cuDNN 混成一件事1.1 驱动和 CUDA Runtime 的关系nvidia-smi 那个版本号到底是什么很多人第一次装 CUDA会被nvidia-smi右上角的CUDA Version: 12.4误导以为自己已经装好了 CUDA 12.4。其实这个数字表示当前 NVIDIA 驱动能够支持的最高 CUDA Runtime 版本不是系统里已经安装了 CUDA Toolkit 12.4。驱动是内核层和用户层之间的桥梁CUDA Toolkit 是编译器、头文件、库文件和调试工具的集合CUDA Runtime 则是程序运行时依赖的动态库。三者关系可以这样理解驱动是公路CUDA Runtime 是路上跑的货车CUDA Toolkit 是修车厂和工具箱。公路等级决定了货车最高能跑多快但货车上装什么货还得看你自己有没有把 Toolkit 和 cuDNN 装对。nvidia-smi能正常输出只说明驱动和 GPU 通信正常。它不保证nvcc存在也不保证/usr/local/cuda指向正确版本。判断驱动是否满足目标 CUDA 版本要看 NVIDIA 官方的驱动版本对照表。比如 4060 Ti 这类 Ada Lovelace 架构显卡需要较新的驱动才能发挥完整性能同时可以向下兼容 CUDA 11.x 和 12.x 的 Runtime。实际选择时我一般先确定框架要求再倒推 CUDA再倒推最低驱动版本而不是先随便装一个最新驱动就完事。注意nvidia-smi里的 CUDA Version 是驱动支持上限不是已安装版本。用nvcc --version看到的才是 Toolkit 编译器版本。1.2 CUDA Toolkit 和 cuDNN 的分工编译期与运行期CUDA Toolkit 提供nvcc、cuda.h、libcudart.so、libcublas.so、libcufft.so等基础组件。cuDNN 是 NVIDIA 的深度神经网络加速库主要提供卷积、池化、归一化、激活函数等高度优化实现。PyTorch、TensorFlow、PaddlePaddle 这些框架在 GPU 上训练时很多算子会调用 cuDNN。cuDNN 不是独立运行的它依赖对应大版本的 CUDA。比如 cuDNN 8.9 for CUDA 12.x 和 cuDNN 8.9 for CUDA 11.x 是两个不同的包不能混用。下载页面上通常会写清楚for CUDA 12.x或for CUDA 11.x这个后缀比版本号本身还重要。编译期和运行期也要分开看。编译一个带 CUDA 的程序时需要头文件和nvcc运行已编译好的 PyTorch 时可能只依赖libcudart、libcudnn等动态库。所以你会遇到一种情况nvcc没装但 PyTorch 仍然能用 GPU因为 conda 或 pip 自带了一套 CUDA Runtime。反过来nvcc装好了PyTorch 也可能因为 cuDNN 不匹配而无法启用。排查时要先确认自己是在解决编译问题还是运行问题。1.3 选版本时我通常按这张兼容表倒推版本选择不要凭感觉按下面这个顺序倒推最稳应用框架版本 → 框架要求的 CUDA 大版本 → cuDNN 大版本 → 显卡驱动最低版本 → Ubuntu 版本。比如 PyTorch 官方安装命令通常会写cu121、cu124这类后缀这个后缀就是框架编译时使用的 CUDA Runtime 版本。你可以装系统 CUDA 12.4也可以让 conda 装cudatoolkit12.1但不要让LD_LIBRARY_PATH把两套库强行混在一起。组件主要作用常用查看命令容易混淆的点NVIDIA 驱动让系统识别并调度 GPUnvidia-smi显示的 CUDA Version 是支持上限CUDA Toolkit提供 nvcc、头文件、基础库nvcc --version可以多版本共存CUDA Runtime程序运行时依赖的动态库ldconfig -pgrep cudartcuDNN深度学习算子加速库查看cudnn_version.h或写测试程序必须匹配 CUDA 大版本PyTorch/TF上层框架torch.version.cuda不一定使用系统 CUDA这张表建议保存下来。每次装新机器先填一遍能避开大部分“装完不能用”的问题。特别是服务器上有多张卡、多个用户、多个 conda 环境时版本管理不是可选项而是必须做的事。2. 安装前的系统体检与依赖准备2.1 确认 Ubuntu 版本、内核、显卡与现有驱动第一步不是下载 CUDA而是把系统底细摸清楚。执行lsb_release -a看 Ubuntu 版本uname -r看内核版本lspci | grep -i nvidia看显卡是否被识别nvidia-smi看驱动是否已经可用。如果是全新系统nvidia-smi报command not found很正常说明还没装驱动。如果之前装过驱动但版本很旧建议先决定是升级驱动还是保留旧驱动。CUDA Toolkit 安装包有时会自带驱动但服务器上我通常不建议让 CUDA 安装包覆盖系统驱动除非你明确知道自己在做什么。Ubuntu 20.04、22.04、24.04 的软件源和默认 GCC 版本不同CUDA 安装包也按发行版区分。用错仓库地址会出现依赖冲突甚至把系统包管理器弄乱。查看显卡计算能力也很重要比如 4060 Ti 的计算能力是 8.9编译 OpenCV 或自定义 CUDA 程序时可能需要指定CUDA_ARCH_BIN8.9。如果不知道计算能力可以去 NVIDIA 官方页面查或者用nvidia-smi --query-gpucompute_cap --formatcsv在驱动正常后查看。lsb_release -a uname -r lspci | grep -i nvidia nvidia-smi nvidia-smi --query-gpuname,driver_version,compute_cap --formatcsv2.2 处理 nouveau、Secure Boot 与驱动冲突Ubuntu 默认会加载开源 nouveau 驱动。安装 NVIDIA 官方驱动前通常需要禁用 nouveau否则可能冲突。很多现代安装方式会自动处理但手动装 runfile 时最好检查/etc/modprobe.d/blacklist-nouveau.conf。Secure Boot 开启时第三方内核模块可能无法加载表现是驱动装了但nvidia-smi失败。可以选择在 BIOS 中关闭 Secure Boot或者按发行版流程给内核模块签名。服务器上通常关闭 Secure Boot 更省事个人笔记本如果在意安全启动就按官方文档签名。如果之前用 apt 装过驱动又用 runfile 装了一遍很容易出现nvidia-smi和内核模块版本不一致。排查命令包括cat /proc/driver/nvidia/version、dkms status、modinfo nvidia | head。遇到冲突时先卸载旧驱动再重启确认 nouveau 没有占用然后只保留一种安装方式。不要在同一台机器上反复混用 apt、runfile、conda 驱动包这三种来源的驱动和库路径经常打架。注意虚拟机里通常没有真正的 NVIDIA GPU 直通装 CUDA Toolkit 可以用于编译但nvidia-smi不一定能识别显卡。WSL2 则要在 Windows 侧装好驱动Linux 侧不要重复装显示驱动。2.3 编译工具链和基础依赖CUDA 编译和很多 Python 包安装都需要 GCC、G、make、cmake、git、wget、curl、dkms、linux-headers 等。Ubuntu 上可以先用一条命令补齐sudo apt update sudo apt install -y build-essential gcc g make cmake git wget curl dkms linux-headers-$(uname -r) pkg-config这里有个常见坑CUDA 对 GCC 版本有上限要求。比如某些 CUDA 版本不支持过新的 GCC报错可能是unsupported GNU version。如果系统默认 GCC 太新可以安装一个较旧版本并用update-alternatives切换或者在编译时指定CC、CXX。但不要随意降级系统 GCC以免影响其他软件。更稳的做法是查看目标 CUDA 版本的官方支持矩阵必要时用gcc-12、g-12这类带版本号的命令。2.4 下载校验与磁盘空间CUDA 和 cuDNN 安装包都很大下载不完整是高频问题。尤其是用浏览器下载.run文件中断后可能得到一个损坏包解压时报gzip: stdin: invalid compressed>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update sudo apt install -y cuda-toolkit-12-4安装完成后CUDA 通常会放在/usr/local/cuda-12.4并创建/usr/local/cuda软链接。apt 方式的好处是升级、卸载可以用apt管理依赖清晰缺点是版本切换不如手动灵活仓库里可选的版本受发行版限制。如果你需要同时保留 11.8 和 12.4apt 也能做到但要小心/usr/local/cuda软链接指向哪个版本。3.2 runfile 本地安装离线、多版本和定制组件的选择没有外网、需要指定组件、或者要在同一台机器上装多个 CUDA 版本时runfile 更合适。下载.run文件后先校验再赋予执行权限。安装时建议加--toolkit只装 Toolkit不装驱动避免覆盖系统驱动。如果需要指定安装目录可以用--toolkitpath/usr/local/cuda-12.4。安装过程中会询问是否安装驱动、是否安装 samples。Linux 下不要选 Visual Studio Integration那是 Windows 组件选了也没用还可能报no supported version of visual studio was found。chmod x cuda_12.4.0_550.54.14_linux.run sudo sh cuda_12.4.0_550.54.14_linux.run --toolkit --silent --override--override用于跳过编译器版本检查但前提是你确认 GCC 兼容。如果安装过程中出现gzip: stdin: invalid compressed>export CUDA_HOME/usr/local/cuda-12.4 export PATH$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH$CUDA_HOME/lib64:$LD_LIBRARY_PATH写完执行source ~/.bashrc然后用which nvcc、echo $CUDA_HOME、echo $LD_LIBRARY_PATH检查。LD_LIBRARY_PATH不是越长越好把多个 CUDA 版本的 lib64 同时塞进去会导致程序加载到错误版本的libcudart。多版本共存时我建议用切换脚本而不是把所有版本都写进环境变量。3.4 验证 CUDAnvcc、deviceQuery、带宽测试安装完成后第一步看nvcc --version确认编译器版本。第二步看nvidia-smi确认驱动和 GPU 状态。第三步编译 deviceQuery确认 CUDA Runtime 能枚举设备。新版 CUDA 的 samples 不一定随安装包提供可以去 NVIDIA 的 cuda-samples 仓库获取。编译后运行./deviceQuery看到Result PASS才算基本可用。nvcc --version nvidia-smi cat /usr/local/cuda/version.json如果要做性能排查还可以跑 bandwidthTest 看主机与设备之间的带宽是否符合预期。对于 4060 Ti 这类卡PCIe 带宽和显存带宽要分开看。deviceQuery 通过、bandwidthTest 正常说明驱动、Toolkit、运行库这条链路是通的。此时再去装 cuDNN 和框架问题范围会小很多。4. cuDNN 安装tar 包、deb 包与多版本共存4.1 下载包形态选择与版本核对cuDNN 下载页面通常提供三种形式tar 归档、deb 包、以及针对特定框架的包。tar 包最灵活适合手动管理多版本deb 包最省事适合单版本系统conda 包适合只想在 Python 环境里用 cuDNN 的人。选择时先确认 CUDA 大版本比如for CUDA 12.x再确认 cuDNN 大版本。cuDNN 8.x 和 9.x 的 API 有差异框架支持情况也不同。不要只看 cuDNN 版本号后缀里的 CUDA 版本才是关键。下载后同样要校验。cuDNN 包损坏也会导致解压失败或复制后库文件不完整。解压 tar 包后通常看到include和lib两个目录。里面会有cudnn.h、cudnn_version.h、libcudnn.so等文件。复制前先备份原有文件尤其是已经装过旧版本时。4.2 tar 包手动安装复制哪些文件tar 包安装的本质是把头文件复制到 CUDA 的 include 目录把库文件复制到 lib64 目录并建立正确的软链接。下面以 CUDA 12.4 为例tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive sudo cp include/cudnn*.h /usr/local/cuda-12.4/include/ sudo cp lib/libcudnn* /usr/local/cuda-12.4/lib64/ sudo chmod ar /usr/local/cuda-12.4/include/cudnn*.h sudo chmod ar /usr/local/cuda-12.4/lib64/libcudnn*复制完成后检查/usr/local/cuda-12.4/lib64下是否有libcudnn.so.8或libcudnn.so.9以及对应的.so软链接。如果只有实体文件没有软链接编译时-lcudnn可能找不到。可以用ln -s手动补但通常 tar 包里已经带好。最后运行sudo ldconfig刷新动态库缓存。4.3 deb 包安装与 samples 验证deb 包安装 cuDNN 更自动化适合 Ubuntu 新手。先安装本地仓库包再复制 keyring更新 apt然后安装libcudnn8、libcudnn8-dev、libcudnn8-samples。注意包名可能随 cuDNN 大版本变化比如 cuDNN 9 可能是libcudnn9。安装后samples 通常在/usr/src/cudnn_samples_v8或类似目录。把 samples 复制到用户目录编译 mnistCUDNN运行后看到Test passed就说明 cuDNN 可用。sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/ sudo apt update sudo apt install -y libcudnn8 libcudnn8-dev libcudnn8-samples cp -r /usr/src/cudnn_samples_v8 ~/cudnn_samples cd ~/cudnn_samples/mnistCUDNN make clean make ./mnistCUDNN如果mnistCUDNN报找不到libcudnn.so先确认/usr/local/cuda/lib64是否在LD_LIBRARY_PATH中再确认ldconfig是否生效。也可以直接查看ldd ./mnistCUDNN | grep cudnn看它实际加载的是哪个路径的库。4.4 多版本切换与 update-alternatives多版本共存的核心是每个 CUDA 版本一个独立目录/usr/local/cuda只是一个软链接。切换时改软链接指向或者用update-alternatives管理nvcc、cuda、libcudnn。但update-alternatives管理libcudnn比较麻烦因为 cuDNN 文件多。更简单的做法是写一个切换脚本同时改CUDA_HOME、PATH、LD_LIBRARY_PATH和/usr/local/cuda软链接。sudo rm -f /usr/local/cuda sudo ln -s /usr/local/cuda-12.4 /usr/local/cuda切换后要重新登录 shell 或重新source环境文件再检查nvcc --version。如果你用 conda还要注意 conda 环境里的cudatoolkit可能覆盖系统版本。多版本环境下最忌讳的是“装完不记录”过两周自己都忘了哪套库对应哪个项目。建议在/usr/local/cuda-版本号/README.local里记下安装日期、驱动版本、cuDNN 版本和用途。5. 框架周边conda、PyTorch、Docker、OpenCV、WSL25.1 conda 里的 cudatoolkit 和系统 CUDA 谁优先conda 可以安装cudatoolkit和cudnn它们位于 conda 环境目录下不一定会使用系统/usr/local/cuda。当你激活环境后LD_LIBRARY_PATH可能被 conda 修改导致程序优先加载 conda 里的库。这既是优点也是缺点优点是环境隔离不污染系统缺点是容易和系统 CUDA 混用出现版本不一致。判断当前环境用哪套 CUDA可以看which nvcc、echo $LD_LIBRARY_PATH、conda list | grep -E cudatoolkit|cudnn。如果 PyTorch 是通过 conda 安装的它可能自带 CUDA Runtime不需要系统 CUDA Toolkit 也能运行。但如果要编译自定义 CUDA 扩展就需要系统nvcc。所以一个常见组合是系统装 CUDA Toolkit 用于编译conda 环境装 PyTorch 用于运行。两者版本最好对齐比如系统 CUDA 12.4PyTorch 选 cu124 版本。如果系统 CUDA 12.4conda 里装 cudatoolkit 11.7再用 conda 的 PyTorch通常也能跑但编译扩展时可能混乱。5.2 PyTorch/TensorFlow 验证与版本匹配装完 CUDA 和 cuDNN 后用 Python 验证最直接。PyTorch 中执行import torch print(torch.__version__) print(torch.version.cuda) print(torch.backends.cudnn.version()) print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果torch.cuda.is_available()为 False先别急着重装系统。检查驱动、CUDA Runtime、PyTorch 版本是否匹配。torch.version.cuda显示的是 PyTorch 编译时使用的 CUDA 版本不是系统nvcc版本。两者可以不同但大版本最好一致。TensorFlow 也类似用tf.config.list_physical_devices(GPU)检查。如果只看到 CPU可能是 cuDNN 没被找到或者 TensorFlow 版本与 CUDA 不匹配。注意PyTorch 官网的安装命令会带cu121、cu124这类后缀。不要自己猜按官网命令复制。5.3 Docker 与 nvidia-container-toolkit在 Docker 里跑 GPU 任务需要安装 NVIDIA Container Toolkit并让 Docker 能访问 GPU。安装后可以用docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi测试。容器方案的最大好处是环境隔离CUDA、cuDNN、框架版本都封在镜像里不会和宿主机冲突。宿主机只需要驱动正常容器内不需要再装驱动。很多人把驱动装进容器结果容器启动失败就是因为把驱动和运行时混在一起了。如果公司内网无法拉取镜像可以离线导入镜像包。Docker 方案适合多项目、多版本并行也适合复现实验。缺点是镜像体积大GPU 直通配置需要额外权限。WSL2 下也可以用 Docker Desktop 的 GPU 支持但要注意 Windows 驱动和 WSL 内核版本。5.4 OpenCV 带 CUDA 编译参数编译 OpenCV 带 CUDA 是另一个高频场景。关键 CMake 参数包括WITH_CUDAON、OPENCV_DNN_CUDAON、CUDA_ARCH_BIN、CUDNN_LIBRARY、CUDNN_INCLUDE_DIR。4060 Ti 的计算能力是 8.9所以CUDA_ARCH_BIN8.9。如果不知道计算能力可以设CUDA_ARCH_BIN为多个值但会增加编译时间。编译前确认nvcc可用cuDNN 头文件和库路径正确。cmake -D CMAKE_BUILD_TYPERELEASE \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D WITH_CUDAON \ -D WITH_CUDNNON \ -D OPENCV_DNN_CUDAON \ -D CUDA_ARCH_BIN8.9 \ -D CUDNN_LIBRARY/usr/local/cuda/lib64/libcudnn.so \ -D CUDNN_INCLUDE_DIR/usr/local/cuda/include \ ..如果 CMake 报找不到 cuDNN先检查CUDNN_INCLUDE_DIR下是否有cudnn.hCUDNN_LIBRARY是否指向真实存在的.so文件。编译过程中如果报 GCC 版本不支持参考前面的工具链处理。OpenCV 编译时间长建议用make -j$(nproc)但内存不足时减少并行数。5.5 WSL2 和虚拟机场景的特殊注意WSL2 下装 CUDAWindows 侧需要安装支持 WSL 的 NVIDIA 驱动Linux 侧只装 CUDA Toolkit不要装 Linux 显示驱动。可以用nvidia-smi验证 WSL 是否能识别 GPU。虚拟机则不同除非配置了 GPU 直通否则虚拟机里看不到物理 GPU。VMware 和 VirtualBox 对 NVIDIA GPU 直通支持有限通常只适合编译和 CPU 测试。如果只是学习 CUDA 语法虚拟机里装 Toolkit 可以编译但运行会回退到 CPU 或直接失败。远程服务器场景下如果装驱动后 SSH 无法连接先检查网络和 SSH 服务而不是怀疑 CUDA。驱动安装通常不会影响 SSH除非重启后内核模块加载失败导致系统异常。服务器上建议在本地控制台或 IPMI 旁路操作避免远程装驱动把自己关在门外。6. 常见报错与排查清单6.1 下载解压类gzip invalid compressed data这个报错几乎只有一个原因下载的.run或.tar.xz文件不完整。网络中断、浏览器缓存、代理工具损坏文件都可能导致。解决方法是重新下载并用官方 SHA256 校验。不要试图用gzip -d或tar --ignore-zeros强行解压那样即使解开安装文件也可能损坏。用wget -c续传或者换一个网络环境重新下载。校验命令sha256sum cuda_12.4.0_550.54.14_linux.run对比官网数值不一致就删掉重下。cuDNN 的 tar 包也一样解压失败先查文件大小和哈希。6.2 命令找不到与版本不一致nvcc: command not found说明 PATH 没配好或者只装了驱动没装 Toolkit。用ls /usr/local/cuda*/bin/nvcc看是否存在。如果存在把/usr/local/cuda/bin加入 PATH。nvidia-smi和nvcc --version版本不一致很常见因为前者是驱动支持上限后者是 Toolkit 版本。只要驱动版本不低于 Toolkit 要求通常没问题。如果nvcc显示的版本不是你想要的那个检查/usr/local/cuda软链接指向。cuda samples找不到是因为新版本 CUDA 不再把 samples 随 Toolkit 安装。可以去 NVIDIA 的 cuda-samples 仓库克隆然后按目录编译。deviceQuery在Samples/1_Utilities/deviceQuery下。编译时需要指定 CUDA 路径通常make会自动找如果找不到就设置CUDA_PATH。6.3 库加载失败与 cuDNN 检测失败error while loading shared libraries: libcudnn.so.8说明动态链接器找不到 cuDNN。检查/usr/local/cuda/lib64是否在LD_LIBRARY_PATH或者是否写进了/etc/ld.so.conf.d/。用ldconfig -p | grep cudnn看缓存里有没有。如果没有运行sudo ldconfig。如果加载到了错误版本用ldd查看程序实际链接路径。cuDNN 版本检测可以写一个小程序#include cudnn.h #include cstdio int main() { printf(cuDNN: %d.%d.%d\n, CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL); return 0; }编译g cudnn_version.cpp -o cudnn_version -I/usr/local/cuda/include -L/usr/local/cuda/lib64 -lcudnn ./cudnn_version如果编译报cudnn.h: No such file头文件没复制对如果链接报-lcudnn找不到库路径或软链接有问题。6.4 多版本、升级、卸载与迁移多版本安装时每个版本放独立目录不要覆盖。卸载 apt 安装的版本可以用sudo apt remove cuda-toolkit-12-4但注意不要误删驱动。runfile 卸载可以用安装文件加--uninstall。卸载后检查/usr/local/cuda*残留手动清理软链接。升级 CUDA 前先确认框架是否支持新版本不要为了追新导致项目跑不起来。跨机器迁移 CUDA 环境最稳的是用 Docker 镜像或 conda 环境导出而不是直接复制/usr/local/cuda。因为不同机器的驱动、Ubuntu 版本、GCC 版本可能不同复制过去的二进制不一定兼容。如果必须复制至少确保目标机器驱动版本足够并且重新配置环境变量和ldconfig。6.5 常见问题速查表现象可能原因快速处理nvidia-smi找不到驱动未装或未加载装驱动检查 Secure Boot 和 nouveaunvcc找不到PATH 未配置或未装 Toolkit检查/usr/local/cuda/bin并加入 PATHnvidia-smi与nvcc版本不同前者是驱动支持上限确认驱动满足 Toolkit 要求即可下载报 gzip 错误安装包损坏重新下载并校验 SHA256PyTorchcuda.is_available()为 False版本不匹配或库路径错误检查 torch.version.cuda 与驱动找不到libcudnn.socuDNN 未复制或未 ldconfig检查 lib64 并运行 ldconfigOpenCV 编译找不到 cuDNNCMake 路径不对指定 CUDNN_LIBRARY 和 CUDNN_INCLUDE_DIR多版本切换后仍用旧版软链接或 PATH 未刷新重设/usr/local/cuda并重开 shell4060 Ti 编译报架构不支持未指定计算能力设置CUDA_ARCH_BIN8.9conda 与系统 CUDA 混用LD_LIBRARY_PATH 冲突固定环境必要时用容器隔离这份表建议在装机器时放在手边。大部分报错都能从前三列定位真正需要重装系统的情况很少。我自己在几台 Ubuntu 工作站和服务器上反复装过 CUDA 和 cuDNN最深的体会是版本记录比安装命令更重要。每装完一台机器我会把nvidia-smi、nvcc --version、cuDNN 版本、PyTorch 版本、安装方式、环境变量改动都写进一个env-note.md。下次出问题先翻记录能省掉很多重复排查。另一个小技巧是给每个项目建独立 conda 环境或 Docker 镜像系统 CUDA 只保留一两套稳定版本不要把所有新版本都往/usr/local里塞。系统越干净CUDA 和 cuDNN 越不容易互相打架。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。