背景
之前曾说过使用sudo ubuntu-drivers devices
来安装显卡驱动,这样可以保证基本上不出大问题。然而世界上的事情都是舍不得孩子套不住狼;使用这种默认方法安装的驱动版本太低,仅仅能安装cuda8.0,实在难以想象。所以我决定重新安装一次ubuntu系统,然后从头安装一次驱动,并按照cuda10。
参考教材:
https://www.cnblogs.com/fanminhao/p/8902296.html
http://www.cnblogs.com/fanminhao/p/8902378.html
https://www.cnblogs.com/gambler/p/9574596.html
流程
1、安装ubuntu后更新
非常重要!!!
sudo apt-get update
sudo apt-get upgrade
2、更新Ubuntu Kernel
在更新kernel前,首先要安装libssl1.1.0,这个链接如下:
百度网盘地址
https://pan.baidu.com/s/155rYJB2NnAvGOW65zVpCvQ 密码: 5mdr
由于我的电脑的amd64,所以从https://kernel.ubuntu.com/~kernel-ppa/mainline/上选择一个比较新的Kernel,本次选择的是kernel v4.20,下载以下文件并放到一个单独文件夹(不能保证其他核也行):
linux-headers-4.20.0-042000_4.20.0-042000.201812232030_all.deb
linux-headers-4.20.0-042000-generic_4.20.0-042000.201812232030_amd64.deb
linux-image-unsigned-4.20.0-042000-generic_4.20.0-042000.201812232030_amd64.deb
linux-modules-4.20.0-042000-generic_4.20.0-042000.201812232030_amd64.deb
最后通过sudo dpkg -i *.deb
安装新的内核,最后重启后通过uname -sr
查看内核是否安装成功。
3、NVIDIA最新驱动
首先屏蔽nouveau驱动
sudo chmod 666 /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
添加
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
更新blacklist.conf文件
sudo update-initramfs -u
关闭图像界面,准备安装显卡。
此处需要额外注意,ubuntu16.04由于gcc/g++版本较低,所以配合CUDA10.0,建议使用418.30。目前比较新版本的驱动,几乎都不能使用。
另外需要注意的是,驱动版本必须满足CUDA的要求,如下:
sudo service lightdm stop
sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
sudo service lightdm start
使用nvidia-smi
检查驱动是否安装成功。
4、安装CUDA10和cudnn
4.1 安装CUDA10.0
sudo chmod a+x cuda_10.0.130_410.48_linux.run
sudo ./cuda_10.0.130_410.48_linux.run
安装时一定要在安装驱动时,选择no
,打开图像界面
此时一般nvcc
还没有加入全局环境,打开sudo gedit ~/.bashrc
添加
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/bin/lib64:$LD_LIBRARY_PATH
然后再source ~/.bashrc
后,即可用nvcc --version
看版本信息。
4.2 安装cudnn
解压压缩包后,执行以下命令
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
5、验证
最后选取一个cuda程序验证一下,本文使用了https://github.com/Yannnnnnnnnnnn/cuda_cmakelists.git测试CUDA是否正常。