1、看显卡驱动的型号 https://www.nvidia.com/Download/index.aspx?lang=en-us
2、看显卡驱动版本支持的cuda
https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver
3、
(1)查看显卡驱动,会列出当前的显卡和可安装的驱动
ubuntu-drivers devices
添加驱动源,安装驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo ubuntu-drivers autoinstall #直接安装推荐的驱动
sudo apt-get install nvidia-384 #或指定版本
卸载驱动
sudo apt-get --purge remove nvidia-xxx
或
sudo apt-get autoremove --purge nvidia-*
重启后nvidia-smi
看一下是否装成功
(2)如果报错
nvidia-smiNVIDIA-SMI has failed because it couldn’t communicate with the NVI
结合https://www.cnblogs.com/nanmi/p/12617506.html
cd /usr/src/
ls #查看nvidia版本号 xxx
sudo apt-get install dkms
sudo dkms install -m nvidia -v xxx
如果还不行
sudo apt install nvidia-cuda-toolkit
如果还还不行,在BIOS禁用Secure Boot
(3)如果又报错
Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-kernel-sour
参考https://www.cnblogs.com/bymo/p/7987415.html
结合终端的提示,看log文件
gedit /var/lib/dkms/nvidia-xxx/xxx/build/make.log
实际上,‘-fstack-protector-strong’ 选项是gcc4.9以后的版本才加入的,也就是说需要安装gcc4.9以后的版本。(这说明之前参考的cuda安装教程里降级gcc到4.8已经过时了,还是要参考官方文档)
gcc降级/升级(g++同)
sudo apt-get install gcc-5
cd /usr/bin
ls -l gcc* #查看所有gcc版本
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc #新建软连接
gcc -v #成功
然后重复(2)再看看nvidia-smi
应该就没问题了
3、安装cuda 9.0
网上教程挺全的了
官网下载
ubuntu18.04安装cuda9.0+cudnn+tf
ubuntu16.04 + cuda9.0(deb版)+Cudnn7.1
注意的是有两种安装方法,分别是用run和deb,有人说两种成功率有区别,但是我觉得不至于吧。。
但是测试sample的时候竟然还***报错,
make: *** 没有指明目标并且找不到 makefile。 停止。
盲猜又是gcc版本问题
我可去你的,睡觉了
(1)一个尴尬的问题
nvidia-smi显示的cuda版本,跟nvcc -V不一样,要卸载的话,又显示cuda未安装,所以不会被卸载。
猜测:与装好cuda后发现有问题,没有卸载cuda,直接重装了nvidia驱动有关系?
卸载不掉就直接重装吧
dpkg时候遇到error
dpkg: 警告: 无法找到软件包xxx的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里。
按照网上的教程改dpkg的info,没用
locate以后发现info文件夹里有那些软件包
所以暂时忽略这一步,继续。
(2)
装好后测试下
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make #一定注意选对make的位置!不然会报找不到makefile的错
./deviceQuery
解决
3、安装cudnn
其实就是拷贝头文件+建立软连接
参考前面的教程即可
官网下载
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
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 /usr/local/cuda/lib64/libcudnn* #重置读写权限
查看cudnn版本的方法
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2