在ubuntu16.04系统安装显卡驱动
1. 安装ubuntu.16.04系统
U盘制作启动盘,安装可自行搜索。Dell进入bios是开机出现开机动画时按F2,将启动方式改为u盘启动
注意:双系统可选择将两个系统替换还是只替换ubuntu18.04.建议不留win10
2. 安装显卡驱动
准备文件:NVIDIA-linux-x86_64-xxx.run cuda_9.0.xxxx_linux.run cudnn-9.0-linux-xxx.tgz
16.04版本建议使用cuda9.0
1,命令 Nvidia-smi 查看是否已安装,没有显示,继续下面的安装步骤。
首先nouveau禁止命令写入文件,即编辑/etc/modprobe.d/blacklist.conf文件。
sudo vim /etc/modprobe.d/blacklist.conf
在最后加入如下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
然后调用指令禁止nouveau:
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.
接下来更新内核:sudo update-initramfs –u
然后重启电脑:reboot
重启开机后,摁ctrl + alt+ F1进入ttf模式,执行命令:sudo service lightdm stop
然后进入NVIDIA-Linux-x86_64-xxxxxx.run文件的目录,执行命令:
chmod +x NVIDIA-Linux-x86_64-384.130.run
sudo ./NVIDIA-Linux-x86_64-384.130.run --no-opengl-files
接下来一路Next+OK完成安装全过程即可。
需要强调的是安装时候–no-opengl-files选项必选,不然可能导致系统崩溃!
安装CUDA
用MD5 检验run文件,如果序号不和,得重新下载
输入命令:$ md5sum cuda_9.0.xxx_linux.run,出现类似以下的回复
开始安装CUDA
1.禁用nouveau驱动
终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。
Ubuntu的nouveau禁用方法:
-
在/etc/modprobe.d中创建文件blacklist-nouveau.conf
输入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi编辑器编辑和保存文件)
在文件中输入一下内容:
blacklist nouveau
options nouveau modeset=0 -
执行:
$ sudo update-initramfs –u -
再执行:
$ lsmod | grep nouveau
若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作
2. 重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按Ctrl+Alt+F1进入文本模式(命令行界面),登录账户。
3.输入 $ sudo service lightdm stop 关闭图形化界面
4.切换到cuda文件安装路径:
运行:sudo sh cuda_xxx_linux.run
注意:a、一定要按照提示)输入相应字符,例如有的需要输入accept,有的需要输入yes;
-
遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作需要选择no,否则可以yes),其他都选择yes或者默认即可
-
输入 $ sudo service lightdm start 重新启动图形化界面。
同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了 -
重启电脑,检查 Device Node Verification
执行ls /dev/nvidia*
若出现:/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功 -
设置环境变量
终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。
64位系统:
export PATH=/usr/local/cuda-9.0/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
KaTeX parse error: Expected '}', got 'EOF' at end of input: …LIBRARY_PATH:+:{LD_LIBRARY_PATH}}
保存文件并重启 -
重启电脑,检查上述的环境变量是否设置成功。
a、 验证驱动版本
$ cat /proc/driver/nvidia/version
结果显示
NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.81 Sat Sep 2 02:43:11 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
b. 验证CUDA Toolkit
$ nvcc -V 会输出CUDA的版本信息
如果是这样的:
The program ‘nvcc’ is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是环境配置没有成功,请重复上述步骤7)。 -
尝试编译cuda提供的例子
打开终端输入:$ cd /home/xxx/NVIDIA_CUDA-9.0_Samples 其中xxx是你自己的用户名,通过命令cd进入NVIDIA_CUDA-9.0_Samples目录。
然后终端输入:$ make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。
第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc
解决办法就是通过命令重新安装gcc就行,在终端输入:$ sudo apt-get install gcc 安装完gcc后, 再make就正常了。
如果编译成功,最后会显示Finished building CUDA samples
2)运行编译生成的二进制文件。
编译后的二进制文件 默认存放在NVIDIA_CUDA-9.0_Samples/bin中。
接着在上一个终端中输入 :$ cd /home/lxxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release 其中xxx是你自己的用户名
然后在终端输入 :$ ./deviceQuery
结果其中 Result = PASS代表代表CUDA安装且配置成功,若失败 Result = FAIL
3)最后再检查一下系统和CUDA-Capable device的连接情况
终端输入 : $ ./bandwidthTest
安装cudnn
- 解压文件
tar -xvf cudnn-9.0-linux-x64-v7.tgz - 将文件复制到特定目录
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn* - 软连接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig
cuDNN 7.0.5 检测是否成功安装:
下载三个文件:
cuDNN v7.0.5 Runtime Library for Ubuntu16.04 (Deb)
cuDNN v7.0.5 Develpoper Library for Ubuntu16.04 (Deb)
cuDNN v7.0.5 Code Samples and User Guide for Ubuntu16.04 (Deb)
sudo dpkg -i libcudnn7_7.4.2.24-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda9.0_amd64.deb
cp -r /usr/src/cudnn_samples_v7/ /home/wdong/
cd /home/wdong/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN