目录
- 前言
- 安装步骤
- 1. 下载安装文件
- 2. 禁用 nouveau 驱动
- 3. 文本命令行模式运行 runfile 文件安装CUDA
- 4. 设置环境变量
- 常见问题及解决方案
- 1. 循环登陆
- 2. 黑屏/无法进入命令行:
- 3. 内核版本不匹配:
前言
CUDA安装文件直接包含有与之匹配的Nvidia显卡驱动,所以在这里我们直接用CUDA安装文件同时安装Nvidia显卡驱动和CUDA。若事先单独安装了Nvidia驱动,则在安装CUDA时,取消安装Nvidia驱动的选项。
在安装时一定要注意CUDA版本与Nvidia显卡驱动、Linux系统内核版本以及GCC版本之间的对应关系,以Ubuntu16.04系统为例,常见信息如下表所示,更多信息请参考官方安装指南
CUDA Toolkit | Nvidia Driver Version | Kernel | GCC |
CUDA 10.0 | >= 410.48 | 4.4 | 5.4 |
CUDA 9.0 | >= 384.81 | 4.4 | 5.3.1 |
CUDA 8.0 | >= 375.26 | 4.4 | 5.3.1 |
安装步骤
1. 下载安装文件
登陆Nvidia官网 ,下载相应版本的安装文件,注意安装文件类型选择 runfile(local)
2. 禁用 nouveau 驱动
nouveau是Ubuntu16.04默认安装的第三方开源驱动,安装CUDA会跟nouveau冲突,需要先禁用。查看nouveau是否被禁用,输入以下命令:
lsmod | grep nouveau
若有输出,则说明 nouveau 在运行中,则需要禁用:
打开blacklist.conf文件
sudo gedit /etc/modprobe.d/blacklist.conf
在末尾加入
blacklist nouveau
options nouveau modeset=0
执行以下命令,重启
sudo update-initramfs -u
重启后再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功
lsmod | grep nouveau
3. 文本命令行模式运行 runfile 文件安装CUDA
按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码
先关闭图形化界面
sudo service lightdm stop
进入runfile文件保存的路径,输入下列命令进行安装:
(重点!!! 强烈建议在此处加上 –no-opengl-libs 选项,避免后面选择安装时手滑安装了OpenGL,导致出现循环登录的问题)
sudo sh cuda_10.0.130_410.48_linux.run --no-opengl-libs
此时会询问是否安装Nvidia显卡驱动,由于我们事先没有装显卡驱动,这里选择yes;询问CUDA安装路径,直接回车选择默认的路径(/usr/local/cuda-10.0),其余的问题一路yes以及回车即可。
4. 设置环境变量
在安装完成后,重启,如果界面分辨率正常说明显卡安装成功,然后设置CUDA环境变量,在命令行输入:
sudo gedit ~/.bashrc
在最后加入以下三行(64位系统为lib64,32位系统为lib)
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.0
source ~/.bashrc
即可,验证显卡驱动与CUDA是否安装成功:
- 验证驱动版本:
cat /proc/driver/nvidia/version
- 验证CUDA Toolkit
nvcc -V
如果有输出表示安装成功!
常见问题及解决方案
1. 循环登陆
若不小心安装了 OpenGL,则会出现循环登陆的问题,原因是Nvidia显卡的OpenGL库覆盖了当前Intel显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载CUDA和Nvidia驱动,再按正确的步骤重新安装
sudo /usr/local/cuda/bin/uninstall_cuda_10.0.pl
sudo /usr/bin/nvidia-uninstall
# 如果找不到,也可以运行:
sudo apt-get install autoremove --purge nvidia*
2. 黑屏/无法进入命令行:
重启,按ESC进入选择菜单,选择第一个“Ubuntu”,按“e”键进入编辑模式
我们在“$vt_handoff”后面给出引导运行级别,3(多用户模式,纯文本),Ctrl+X引导系统,即可进入命令行,重新安装
(关于Linux系统的引导运行级别,一般默认的是5(多用户图形界面),就是我们常用的那种。设置为1启动单用户模式,会进入root shell。)
3. 内核版本不匹配:
先查看一下当前的内核版本,使用命令:
uname -a
搜索目前存在的内核版本,使用命令:
apt-cache search linux|grep linux-image
选择所需要的内核版本进行安装,安装内核需要安装image和header,例如:
apt-get install linux-image-4.4.0-58-generic linux-headers-4.4.0-58-generic
重启,按ESC进入选择菜单,选择高级选项,选择所需要的内核版本启动系统