马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、先说结论:Ubuntu 20.04 搭 AI 环境的正确顺序
驱动 → CUDA → CUDNN → Anaconda,这四步有严格的先后顺序:CUDA 版本要「低于驱动版本 1–2 个大版本」(考虑兼容性),CUDNN 要匹配 CUDA 版本,Anaconda 最后装且只负责 Python 环境。顺序错了,后面几乎全是报错。
整条链路里最容易翻车的三处: nouveau 驱动没禁干净(装驱动装不上)、nvidia-smi 通信失败(重启即可)、CUDNN 8.0+ 忘了复制 cudnn_version.h(验证卡住)。
二、第一步:装显卡驱动
1. 预备工作:禁用 nouveau 驱动
nouveau 是 Ubuntu 自带的开源显卡驱动,它会和 NVIDIA 驱动抢设备节点,不先禁掉,后面安装必然失败。
- 看当前有没有加载:
lsmod | grep nouveau(有输出就要禁);
- 打开黑名单配置:
sudo vim /etc/modprobe.d/blacklist.conf;
- 文件末尾加两行:
blacklist nouveau
options nouveau modeset=0
- 重建 initramfs:
sudo update-initramfs -u;
- 重启:
sudo reboot;
- 再跑
lsmod | grep nouveau,没有任何输出就是成了。
2. 在线安装(省事)
先看系统推荐哪个版本:
ubuntu-drivers devices
输出里推荐的版本通常是 nvidia-driver-525-open 这类。同意装推荐版本的话,一条命令搞定:
sudo ubuntu-drivers autoinstall
跑完用 nvidia-smi 验证。
两个高频报错
ubuntu-drivers autoinstall 报 nvidia-dkms 依赖装不上:一层层往下剥——先试 sudo apt install dkms;还不行装 sudo apt install dpkg-dev;再不行装 sudo apt install libdpkg-perl。提示 libdpkg-perl 已经是最新时,说明就是它卡住了依赖,直接 sudo apt remove libdpkg-perl 删掉它,再重跑 autoinstall。
nvidia-smi 报「NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver」:sudo reboot 重启服务器,绝大多数是内核还没换到新驱动模块。
3. 离线安装(推荐生产环境)
外网不好走时离线更稳:
- 去 NVIDIA 官网按服务器信息搜合适的驱动;
- 下载.run 文件(可以选
ubuntu-drivers devices 推荐的版本号);
- 装依赖:
sudo apt-get install gcc、sudo apt-get install make;
- 给 .run 文件加执行权限后执行安装;
nvidia-smi 出来显卡信息就是成功。
三、第二步:装 CUDA
1. 选版本
先按驱动版本挑 CUDA 版本,考虑兼容性,推荐选比驱动版本低 1–2 个大版本的。 然后到 NVIDIA 官网选对应版本。
2. 下载与安装
下载 cuda 的 .run 文件后执行安装。安装过程中:
- 出现协议对话框,输入
accept;
- 因为驱动第一步已经装过,这里要按空格取消 Driver 安装,再选 Install(没装驱动的话可以在这一步一起装)。
3. 配环境变量
sudo vim ~/.bashrc
在文件末尾加上 CUDA 路径,然后 source ~/.bashrc 让改动生效。
export PATH=/usr/local/cuda/bin PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64 LD_LIBRARY_PATH
4. 验证
nvcc -V
输出版本信息即为成功。
四、第三步:装 CUDNN
- 进官网按已装的 CUDA 版本选 CUDNN 版本下载,一定要下载 tar 格式;
- 把文件上传到服务器并解压;
- 复制对应文件到 CUDA 目录;
- 注意:CUDNN 8.0 以上会把版本信息写在
cudnn_version.h 里,这个文件也要复制过去,否则验证的时候会没反应;
- 验证:正常输出版本信息即成功。
五、第四步:装 Anaconda
- 从官网下载 Linux 版的 Anaconda 安装包(
.sh);
- 上传到服务器;
- 执行安装,无特殊情况一路回车 + yes(中间有用户协议确认,协议很长,要多点几次回车);
- 装完配环境变量:打开
~/.bashrc,在最后添加路径,注意和实际安装路径对应,保存后 source ~/.bashrc 生效。
export PATH=$PATH:/home/你的用户/anaconda3/bin
六、四条实操建议
- 先在物理机/虚拟机验证一遍再上生产:这条链路任何一步失败,都很难在半途排障(环境已经脏了);
- 每个阶段都用
nvidia-smi / nvcc -V 先验证再往下走,别攒到最后一起排查;
- 驱动装不上先看 nouveau:
lsmod | grep nouveau 这条命令值得反复敲;
- Anaconda 装到独立用户目录:别把 conda 混进系统 Python,后面
pip、系统脚本会互相打架。
七、一条顺序链,记一遍就够
禁 nouveau → 装驱动(nvidia-smi 验证)→ 装 CUDA(nvcc -V 验证,配 ~/.bashrc)→ 装 CUDNN(含 cudnn_version.h,验证)→ 装 Anaconda(配 PATH)。
结论:这条链的每一环都用命令验证过再往下走,比「全装完再看有没有报错」省时间得多。 尤其是nouveau 和 cudnn_version.h 这两处,是这套流程里最典型的两个隐性坑。
(本文由 qidao123.com企服评测-应用市场 编辑提示整理:内容面向 Ubuntu 20.04 上的 NVIDIA 驱动、CUDA、CUDNN 与 Anaconda 环境搭建,适用于深度学习开发机部署与 GPU 服务器初始化。驱动安装请在维护窗口执行并先做快照备份。) |