ubuntu16 CUDA 安装总结
Nvidia 官网右上角有搜索功能,可以很方便的查找相关功能和获取资料,比如搜索 CUDA 和 cuDNN。
CUDA 安装
从 nvidia 官网通过各种链接进入 CUDA 下载页面:https://developer.nvidia.com/cuda-downloads
通过点击选择诸如操作系统的选项获取安装方法,推荐选择 runfile 的安装方式。下载安装文件之后就可以通过上述图片左下角的 documentation 进入安装文档。如果需要安装旧版本的 CUDA 教程顶头右边可以查看历史发布的版本。
安装文档主要包含以下几个部分:
- 目录中的2:安装前的验证操作,比如是否兼容CUDA,下载之前的CUDA
- 目录中的4:由于这里使用 runfile 的安装方式,直接跳转到 4 即可
- 目录中的6:安装之后的配置工作,主要就是添加库路径之类的
不过相比较使用以上的详细安装教程,直接使用目录4第一行的简明教程 Quick Start Guide 更简单。
简明教程
进入简明教程,选择指定的操作系统,这里选择 ubuntu
按照以上操作,最后验证通过即可。
注意事项:
- 第6步修改环境变量只是临时的,如果需要永久修改,可以在当前用户目录下 .bashrc 文件最后添加实现。修改完成后别忘了使用过 source .bashrc 更新当前环境
常见问题解决方案
- 第二步操作:sudo reboot && init 3
- update-initramfs: command not found:执行 sudo apt-get install initramfs-tools
- make nbody 时 提示 libGLU.so not found:在安装教程中搜索 libGLU 安装对应 so。
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev \
libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev
- make nbody 提示 /usr/bin/ld: cannot find -lGL:查看 /usr/lib/x86_64-linux-gnu/ 下 libGL.so 的连接文件是否有错,进行修改即可
cuDNN 安装
cuDNN 是 Nvidia 为深度学习定制的 GPU 加速库。还是在官网通过 Deep Learning,Deep Learning Software 找到 cuDNN:NVIDIA cuDNN | NVIDIA Developer。之后点击 Download cuDnn 就可以进入下载页面(需要注册账号并登陆)。
其中选择版本上面的超链接 Deep Learning SDK Documentation 有详细的说明文档。当然前面的 Installation Guide 给出了简明的安装文档。
从简明教程中找到 Linux 安装部分介绍。根据你的情况选择下载 Tar file 还是 Debian file 进行安装即可,推荐使用 Debian file 的方式。
最后验证一下安装是否成功。需要注意的是使用 Tar file 的安装方式,似乎没有测试用例,因此还是推荐使用 Debian file 的安装方式。当然不进行下面的测试也可以。
常见问题
1、Failed to initialize NVML: Driver/library version mismatch
# 查看存在哪些 kernel mod 依赖
lsmod | grep nvidia
# 卸载相关依赖, 比如
sudo rmmod nvidia_modeset nvidia_drm
# 卸载 nvidia 并重启
sudo rmmod nvidia
nvidia-smi
2、机器重启或下电之后,nvidia-smi nvidia 驱动连不上
# 查看 cuda 是否存在
nvcc -V
# 检查 nvidia 版本
whereis nvidia
# nvidia: /usr/lib/nvidia /usr/share/nvidia /usr/src/nvidia-440.33.01/nvidia
# DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的这些驱动程序,在内核版本变动之后可以自动重新生成新的模块。
sudo apt-get install dkms
# 440.33.01 是安装驱动的版本
sudo dkms install -m nvidia -v 440.33.01
# 成功
nvidia-smi
3、更换CUDA版本或装多个版本
下载的runfile中处理CUDA程序还带有显卡驱动,如果是更换CUDA版本或者安装更高的CUDA版本,这时需要先卸载之前的显卡驱动,通常在卸载前需要关闭桌面显示,就是先保证没有在使用当前的驱动。
关闭桌面命令
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
卸载旧驱动的命令
sudo apt-get --purge remove nvidia-*
不过如果是安装一个更低版本的CUDA可以在安装选项中选择不更新runfile中的driver驱动,这样就可以维持原先高版本的CUDA了。