0. 前言
- 直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;
- 为避免浪费显存,图形化界面显示是在Intel 集显环境下,NVIDIA 独显做计算;循环登陆问题是因为安装时没有加 --no-opengl-libs 参数,默认安装了 OpenGL,覆盖掉了原来显卡的 OpenGL 库
1. 下载安装文件和官方指南
- 登陆官网 https://developer.nvidia.com/cuda-downloads,下载相应版本的安装文件,注意安装文件类型选择 runfile(local)
![4bea54a12ca5a1a5781d50f26b11d524.png](https://img-blog.csdnimg.cn/img_convert/4bea54a12ca5a1a5781d50f26b11d524.png)
- 下载官方的安装指南,便于参考
![4df901dbf603c42e296e45f8b01792e3.png](https://img-blog.csdnimg.cn/img_convert/4df901dbf603c42e296e45f8b01792e3.png)
2. 禁用 nouveau 驱动
nouveau 是 ubuntu 为 nvidia 驱动开发的开源驱动,是在内核中的,不支持 3D 加速。输入以下命令会打开 Software & Updates 页面,点击 Additional Drivers 可以查看并安装专有的 nvidia 驱动。
software-properties-gtk
![f12fbf72f2590b859565616a0a0ce57b.png](https://img-blog.csdnimg.cn/img_convert/f12fbf72f2590b859565616a0a0ce57b.png)
我们手动安装的 nvidia 驱动会跟 nouveau 冲突,需要先禁用
- 先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中
| grep nouveau
- 修改 /etc/modprobe.d/blacklist.conf 文件
sudo vim /etc/modprobe.d/blacklist.conf
在末尾加入
modeset
- 执行以下命令,并重启
sudo update-initramfs –u
- 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功
| grep nouveau
3. 文本命令行模式运行 runfile 文件安装CUDA
- 按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码
- 关闭图形化界面
sudo service lightdm stop
- cd 到 runfile 文件保存的路径,进行安装
- 重点!!!要加 --no-opengl-libs 选项
- 或者先不加--no-opengl-libs 选项,在后面的交互模式下手动选择
sudo sh cuda_10.1.168_418.67_linux.run --no-opengl-libs
执行命令后,稍等一会儿,会出现交互界面,输入 accept,选择要安装的选项进行安装
注意:
若没加参数 --no-opengl-libs,后面会遇到循环登陆的问题,原因就是 NVIDIA显卡 的 OpenGL 库覆盖了当前 Intel 显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载 cuda 和 NVIDIA驱动,再按正确的步骤重新安装
# 卸载 10.0
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl
sudo /usr/bin/nvidia-uninstall
- 若能重新进入图形化界面,则基本安装成功
sudo service lightdm start
4. 检查 Device Node Verification
ls /dev/nvidia*
若结果显示 /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm,则说明安装成功;若显示类似 No such file or directory等信息,则进行如下操作
sudo vim /etc/rc.local
第一行为 #!/bin/sh -e,把 -e 选项去掉,然后把下面的文本复制到 exit 0 之前,保存退出
if
重启后,再次输入以下命令,此时应该会出现 /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm,说明安装成功
ls /dev/nvidia*
5. 设置环境变量,写入 /etc/profile 文件
sudo vim /etc/profile
在最后加入两行(64位系统为lib64,32位系统为lib)
export
重启,检查环境变量是否设置成功
- 验证驱动版本
cat /proc/driver/nvidia/version
- 验证CUDA Toolkit
nvcc -V
至此,cuda 已安装成功
6. 编译 cuda 提供的 samples
cd /home/xxx/NVIDIA_CUDA-10.1_Samples
make -j8
等待一段时间,编译 成功后,二进制文件会存放在 NVIDIA_CUDA-10.1_Samples/bin 中,执行下面的二进制文件,看是否成功
cd /home/lxxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release
./deviceQuery
![d90220d560b40618db91a994b395be9b.png](https://img-blog.csdnimg.cn/img_convert/d90220d560b40618db91a994b395be9b.png)
./bandwidthTest
若出现以下信息,则说明成功
![e01907c84f406abbdbb884d845a4d6d2.png](https://img-blog.csdnimg.cn/img_convert/e01907c84f406abbdbb884d845a4d6d2.png)