一、查看显卡信息:
查看显卡:
lspci | grep -i nvidia
#我的是06:00.0 3D controller: NVIDIA Corporation Device 15f8 (rev a1)
然后看显卡驱动:
lsmod | grep -i nvidia
#我刚装完系统后没有任何驱动,所以这里有没有没关系。
二、安装显卡驱动
1、自己下载安装:
去官网,选择自己的显卡型号,然后下载驱动。回到ubuntu,打开终端,首先卸载一下之前安装的:
sudo apt-get --purge remove nvidia-*
#因为我新装的系统没有任何驱动,所以不用卸载
然后写入黑名单屏蔽nouveau:
sudo vi /etc/modprobe.d/blacklist.conf
到最后添加:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
保存退出。
lsmod | grep nouveau
#看是否有输出,没有输出说明屏蔽成功,可以跳过下一步;如果有输出接着下一步。
==================================
sudo update-initramfs -u
lsmod | grep nouveau
#这样应该没有输出了,如果还有重启一次就好了。
==================================
sudo /etc/init.d/lightdm stop
sudo init 3
chmod a+x NVIDIA-Linux-x86_64-410.78.run
sudo ./NVIDIA-Linux-x86_64-410.78.run -no-x-check -no-nouveau-check -no-opengl-files
nvidia-smi
sudo /etc/init.d/lightdm start
#安装驱动完成。
2、和cuda一起安装:
上面的方式我是看到很多博客总结出来的,我并没有按照上面的执行,我在官网下载的是deb格式的驱动,我就没按照那么安装,我就在安装cuda的时候顺便安装了一下驱动,下面会讲到,比较简单。
三、安装cuda
我在这里花的时间最多,关于cuda+cudnn+Tensorflow版本的问题,纠结了好半天,这里给一个参考这是我目前发现的关于版本对应的最好的一个总结,如果你不想那么麻烦,你可以按照我的安装版本直接安装cuda_9.0.176_384.81_linux.run+ cudnn-9.0-linux-x64-v7.solitairetheme8+tensorflow 1.8.0,其中cudnn是7.0.5。进入你自己下载cuda和cudnn的目录然后开始安装:
sudo bash ./ cuda_9.0.176_384.81_linux.run
首先出现的就是说明,按q退出,输入accept接受,回车。
接下来就是关于你是否安装驱动,这里要注意,如果你上面安装驱动是按照第一种方式,自己已经安装好了,那么此时你选择n然后回车;如果你上面是第二种方式,没有安装驱动,那么你此时选择y,然后回车。
剩下的可以一并选择y就可以了。
==================================
这里如果遇到这个问题:
If you're sure that X is not running, but are getting this error,
please delete any X lock files in /tmp.
那么你需要删除一个文件:
sudo rm /tmp/.X0-lock
接下来在重新执行cuda的安装文件就可以了。
==================================
打开.bashrc文件添加如下路径,我的.bashrc文件在/home/colab下,如果没有找到直接终端输入一部分然后用tab补齐或者终端ls –a命令查看。
sudo vi .bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#可能这里的路径区别就在与cuda的版本问题,这里有cuda和cuda x.x两个文件夹,
#这两个文件夹是软连接的关系,相当于windows里面的快捷方式,所以添加谁都可
#以。保存退出。
source ~/.bashrc
nvcc --version
#如果显示下面的图示就说明成功了。
四、安装cudnn
终端运行:
tar xf cudnn-9.0-linux-x64-v7.solitairetheme8
会在当前目录中解压出一个名为cuda的文件夹,结构如下:
复制cudnn中的文件到CUDA中:
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*
#然后运行:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现如下就说明替换成功了:
五、安装tensorflow
我这里自带python2和python3的版本,我需要用到python3,所以我用pip3去安装到python3的库中(默认安装路径:/usr/local/lib/python3.5/dist-packages/)我这里指定的1.8.0的版本,同时因为我是教育网,所以用的清华的pip源:
sudo pip3 install tensorflow-gpu==1.8.0 –i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后进入python3测试:
python3
>>>import tensorflow
如果没有报错,那么恭喜你安装成功了!
==================================
我之前在这里报了个错误:
ImportError:
libcublas.so.9.0 cannot open shared object file: No such file or directory
1、libcublas.so.9.0的路径在/usr/local/cuda/lib64下,这个是cuda里的一个库文件,你进入这个目录查看这个文件是不是在,如果同名但是版本不同,就说名你的cuda和tensorflow的版本不匹配,你需要卸载重新换版本安装。
2、等我更换了后来的版本,发现这里能安装了,也能成功引用了,应导师要求,为了给其他同学用,需要给其他同学创建账号也使用tensorflow,但是!!!我发现(我用colab账号装的cuda)只有当时安装cuda的账号可以成功引用tensorflow,其他的账号同样报错ImportError: libcublas.so.9.0 cannot open shared object file: No such file or directory,我首先怀疑是不是权限问题,于是我把所有的账号都放到了同一个组,再次尝试,依旧不行……,我去修改tensorflow的权限,给了一个777(非常不建议!!!),还是不行……,正当我不知道怎么办的时候,我想到了一个事情,colab账号可以使用,其他账号(包括root)不可以用,而且还是引用错误,那就说明是这个库文件可能只属于colab,于是我就把这个库放到了共享库的配置文件中,文件是/etc/ld.so.conf
命令行中执行:
sudo echo "/usr/local/lib" >> /etc/ld.so.conf
sudo ldconfig
但是又出错了(我不清楚这里是我操作问题还是都有这个问题)……
报错是:
libcudnn.so.7 is not a symbolic link
于是我进入/usr/local/cuda/lib64文件夹,找到libcudnn.so.7,发现别的文件都是四个一组,两个软连接,一个库文件,一个普通文件,唯独libcudnn.so.7这个是三个库文件和一个普通文件,于是我仿照其他的库文件修改成了两个软连接,一个库文件,一个普通文件的组合。
再次执行:
sudo ldconfig
没有报错,切换到其他账号,进入python3编辑器,再次测试:
python3
>>>import tensorflow
这次终于成功了!!!!这次弄前后一共花了四天时间,卸了装,装了卸,各种坑,希望以后再有人遇到这些问题能够快速解决。