几个月前安装了CUDA环境,借鉴了网上很多博客。由于帮别人重复安装了多次,所以不如写一个博客整理一下。
环境:
- (不排除,目前的步骤与GPU型号有关)
- 系统:Ubuntu 16.04.1 内核版本为 4.4.0-93-generic (当时查询cuda的官方说明,cuda8.0支持内核为4.4.0)
- GPU: NVIDIA GTX 960
- 网上下载的cuda8.0 toolkit 安装包(包含nvidia driver 和 cuda 8.0)
- cudnn v5.1 for cuda 8.0
步骤:
-
- 当时下载是官网的 cuda toolkit 安装包 .run 文件。
- 查询到 cuda toolkit 只支持 gcc 5.3.1 环境 (此处见最后)
- 没查到gcc 5.3.1 , 所以下载源码并编译出 gcc 5.3.0。
- 之后安装 .run 文件时,需要 在gcc 5.3.0环境下,所以需要先导出gcc5.3.0 的环境变量(bin,lib64)
-
- 禁用 nouveau 驱动:
sudo vi /etc/modprobe.d/blacklist.conf
- 在文本最后添加:
blacklist nouveau
options nouveau modeset=0
- 然后执行
sudo update-initramfs -u
- 重启
lsmod | grep nouveau
没有输出,就算正常。
- 禁用 nouveau 驱动:
-
- 禁用 X-windows 服务:
sudo service lightdm stop
- 此时会进入黑屏状态,使用crtl + Alt + F1 进入命令行界面
- 要导出gcc 5.3.0 的环境变量
- 执行安装文件
sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
- 首先弹出协议文件,按 q 退出,并 输入
accept
- 是否安装NVIDIA Driver, 输入
y
- 是否使用 Xconfig ,选择
no
- 是否安装 cuda 8.0 toolkit ,输出
y
- 指定cuda 8.0安装目录,默认即可(
/usr/local/cuda-8.0
) - 是否创建 link ,选择
y
- 是否安装cuda samples ,选择
y
- 指定cuda samples 目录,/home/xx/cuda_samples
- 接下来就等待安装。
- 首先弹出协议文件,按 q 退出,并 输入
- 安装成功后,
sudo service lightdm start
(可能还需按 ctrl + Alt + F7)
- 禁用 X-windows 服务:
-
- 检查是否安装成功:
nvidia-smi
- 弹出GPU信息就成功了
- 安装cudnn-8.0-5.1
- 下载好文件压缩包,其实里面就是lib,直接覆盖cuda 的相应目录即可
sudo tar -xzf cudnn-8.0-linux-x64_v5.1.tgz -C /usr/local
- 记得导出 cuda 的环境变量
- 检查是否安装成功:
注意:
- 后来在相同的环境上(只有GPU不同,其GPU是GTX1070),按照上述步骤安装时,弹出 找不到 kernel source ,无法load kernel module之类的错误。目前还不知道为什么。
- 在一个服务器上(系统为ubuntu 16.04 server ,内核 为 4.4.0-112)安装同样版本的driver和cuda时,偶然发现 安装nvidia driver是需要用 cc做编译,而cc实际上指向的系统的gcc 5.4.0,说明以前用的也是gcc5.4.0,导出gcc 5.3.0 也没有实际用处。于是这次并没有使用gcc 5.3.0,直接用系统的gcc 就安装完成了,cuda samples里的检测例程也能跑通。说明gcc5.3.1 不再是限制了, cuda 其实是支持5.4.0。