悠悠楠杉
在Ubuntu16.04上配置深度学习环境:GPU驱动+CUDA9.0+cuDNN7全指南
一、环境准备阶段的注意事项
在开始安装前,我们需要确认几个关键点。首先打开终端(Ctrl+Alt+T),执行以下命令检查显卡型号:
bash
lspci | grep -i nvidia
我的测试机上显示的是NVIDIA GeForce GTX 1080 Ti,这说明系统已经识别到了显卡硬件。接着查看当前系统内核版本:
bash
uname -m && cat /etc/*release
Ubuntu16.04默认使用4.4内核,这个版本对后续驱动安装比较友好。特别提醒:强烈建议禁用默认的nouveau驱动,这是避免安装冲突的关键步骤。
编辑黑名单配置文件:
bash
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
加入以下内容后保存:
conf
blacklist nouveau
options nouveau modeset=0
更新initramfs并重启:
bash
sudo update-initramfs -u
sudo reboot
二、NVIDIA驱动安装的实战细节
重启后按Ctrl+Alt+F1进入tty1终端,这里有个易错点:必须关闭图形界面才能顺利安装驱动。执行:
bash
sudo service lightdm stop
从NVIDIA官网下载对应版本的驱动(本例使用384.130版本),赋予执行权限:
bash
chmod +x NVIDIA-Linux-x86_64-384.130.run
开始安装时要注意这两个关键参数:
bash
sudo ./NVIDIA-Linux-x86_64-384.130.run --no-opengl-files --no-x-check
--no-opengl-files
防止覆盖系统OpenGL库--no-x-check
跳过X服务检查
安装完成后,用nvidia-smi
命令验证。如果看到类似如下的输出,说明驱动安装成功:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130 Driver Version: 384.130 |
|-------------------------------+----------------------+----------------------+
三、CUDA9.0的定制化安装
下载CUDA9.0的runfile本地安装包(约1.8GB),执行安装时要注意:
bash
sudo sh cuda_9.0.176_384.81_linux.run
交互式安装界面中有几个关键选择:
1. 驱动安装选择N(因为前面已经装过)
2. 其他组件全部选择Y
3. 安装路径保持默认/usr/local/cuda-9.0
配置环境变量时,建议修改~/.bashrc而不是/etc/profile:
bash
echo 'export PATH=/usr/local/cuda-9.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
验证安装时,可以编译自带的samples案例。我习惯用deviceQuery案例测试:
bash
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
make && ./deviceQuery
当看到"Result = PASS"时,说明CUDA环境配置正确。
四、cuDNN7的配置技巧
下载cuDNN7需要NVIDIA开发者账号,这里建议选择"Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0"版本。解压后执行:
bash
sudo tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
权限设置这个步骤容易被忽略,但却是保证多用户环境下正常使用的关键。
五、环境验证与问题排查
最后用深度学习框架验证环境。我习惯用PyTorch测试:
python
import torch
print(torch.cuda.is_available()) # 应该返回True
print(torch.backends.cudnn.version()) # 应该显示7005
常见问题解决方案:
1. 如果遇到"Failed to initialize NVML"错误,尝试sudo nvidia-smi -pm 1
2. CUDA版本显示不一致时,检查PATH中是否包含其他CUDA路径
3. cuDNN测试失败时,检查libcudnn.so的软链接是否正确
整个安装过程大概需要1-2小时,主要耗时在驱动编译和CUDA样本编译。建议在安装每个组件后都立即验证,这样能快速定位问题环节。