ubuntu16.04 + cuda9.0(deb版)+Cudnn7.1

https://blog.csdn.net/jonms/article/details/79318566
https://blog.csdn.net/weixin_39837402/article/details/79970160
https://www.zhihu.com/question/263850405

显卡:1050 6g
操作系统:Ubuntu 16.04LTS

在花了一天并且经历了把自己系统装崩之后,决定结合网上的教程和自己装成功的经验写下来,供未来的自己和有需要的人参考,希望能够帮助到大家.

1检查自己GPU信息

lspci | grep -i nvidia
这里写图片描述

2安装GCC

gcc --version
若没有安装可以:
sudo apt-get install gcc

3.验证系统是否安装了kernel header和 package development

uname -r
sudo apt-get install linux-headers-$(uname -r)

4.如果之前安装nvidia显卡驱动失败了,卸载驱动

sudo apt remove --purge nvidia*

本人安装成功的方式为安装cuda时选择安装nvidia驱动,所以在安装CUDA之前不安装nvidia驱动。
之前尝试过在ubuntu系统设置->软件和更新->附加驱动->nvidia专有驱动->更改应用这种方式来事先安装nvidia驱动,并在cuda安装时选项是否安装nvidia驱动时选 no,最后虽然CUDA安装成功但是运行deviceQuary result=fail 。
这里写图片描述

5.下载CUDA 9.0

之前也尝试过runfile文件安装9.1版本失败,正好服务器版本因pip原因退回9.0并且前辈服务器安装用的deb,于是选择9.0的deb文件
这里写图片描述

按上图选项选择,记得deb文件 1.2GB下载,顺带一提40多m/s的网速真的爽QAQ
如果系统是中文记得吧安装包放到/home下,之后进入字符终端方便找

6.禁用nouveau驱动

nouveau是Linux自带的第三方开源显卡驱动,想要安装nvidia驱动我们先禁用它

lsmod | grep -i nouveau

如果有输出则nouveau正在运行

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

文件中输入

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

再执行

sudo update-initramfs -u

重启后会发现分辨率变得很低

sudo reboot

这时候Ctrl+Alt+F1进入字符终端界面,登入,(输密码记得开小键盘锁

这个时候看看

lsmod | grep -i nouveau

应该是没有任何输出的

7.安装CUDA

关闭图形化界面

sudo service lightdm stop

进入deb文件所在目录

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb

sudo apt-get update
sudo apt-get install cuda

安装过程看不见中文,一直点了yes..之前有安装过runfile大概就是是否安装nvidia驱动,opengl,安装路径,是否安装Toolkit和是否安装sample以及路径,反正我没安装nvidia驱动,所以一路yes就行。如果事先安装了nvidia驱动的话,在驱动选项选择no就行。

8.添加一些库

如果没什么问题安装完成,添加一些库:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

9:重启检查是否安装成功

再重启一下,如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了
登录界面分辨率又回到了正常,不出意外nvidia驱动应该安装好了(正如找回了乱丢的眼镜的我

登入进去检查显卡驱动是否安装成功:(其实分辨率正常了应该就没问题吧..

nvidia-smi

这里写图片描述

重启电脑后,检查Device Node Verification

ls /dev/nvidia*

这里写图片描述
如果有uvm,则安装成功,否则参考第一篇博客中有解决方法。

10.设置环境变量

sudo gedit /etc/profile

末尾添加:

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

重启重置环境变量

11.查看环境变量是否设置成功

11.1:验证驱动版本

cat /proc/driver/nvidia/version

这里写图片描述
11.2:验证CUDA Toolkit

nvcc -V

这里写图片描述

11.3:测试sample
编译sample:

cd /usr/local/cuda-9.0/samples
sudo make

这里写图片描述

10+mins later…
这里写图片描述

运行编译生成的二进制文件:

cd bin/x86_64/linux/release
./deviceQuery

这里写图片描述
result = pass成功否则result=fail

最后再检查一下系统和CUDA-Capable device的连接情况 :

./bandwidthTest

这里写图片描述

result = pass

12.cudnn 7.1

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*

13.安装pip和tensorflow-gpu

测试cudnn有没有装成功直接跑tensorflow试试,先安装gpu版本tensorflow

sudo apt install python3-pip

pip3 install tensorflow-gpu

python代码

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/umi_you/article/details/80268983