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

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

花了一整天踩了很多坑,系统重装n次,结合网上的教程和自己装成功的经验写一份固定版本的安装过程,供未来的自己和有需要的人参考.(CUDA9.0和cudnn7.1下载地址在文章最后)

1检查自己GPU信息

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

2价差GCC版本

gcc --version
(之前18.04系统装cuda9.0安装失败原因可能是自带的GCC版本过高需要降版本,而16.04自带5.4x的GCC)
一般都会自带GCC,若没有安装可以:
sudo apt-get install gcc

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

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

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

sudo apt remove --purge nvidia*
 
 
  • 1

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

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
 
 
  • 1

如果有输出则nouveau正在运行

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

文件中输入

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

再执行

sudo update-initramfs -u
 
 
  • 1

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

sudo reboot
 
 
  • 1

(过程可能出现)
这里写图片描述
这时候直接按Ctrl+Alt+F1也可以进入字符终端界面,登入,(输密码记得开小键盘锁

这个时候看看

lsmod | grep -i nouveau
 
 
  • 1

应该是没有任何输出的

7.安装CUDA

关闭图形化界面

sudo service lightdm stop
 
 
  • 1

进入deb文件所在目录

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
 
 
  • 1
  • 2
  • 3
  • 4

安装过程看不见中文,一直点了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
 
 
  • 1

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

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

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

nvidia-smi
 
 
  • 1

这里写图片描述

重启电脑后,检查Device Node Verification

ls /dev/nvidia*
 
 
  • 1

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

10.设置环境变量

sudo gedit /etc/profile
 
 
  • 1

末尾添加:

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
 
 
  • 1
  • 2
source /etc/profile
 
 
  • 1

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

11.1:验证驱动版本

cat /proc/driver/nvidia/version
 
 
  • 1

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

nvcc -V
 
 
  • 1

这里写图片描述

11.3:测试sample
编译sample:

cd /usr/local/cuda-9.0/samples
sudo make
 
 
  • 1
  • 2

这里写图片描述

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

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

cd bin/x86_64/linux/release
./deviceQuery
 
 
  • 1
  • 2

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

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

./bandwidthTest
 
 
  • 1

这里写图片描述

result = pass

12.cudnn 7.1

下载地址,不要下后缀为POWER8的,否则找不到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*
 
 
  • 1
  • 2
  • 3
  • 4

13.安装pip和tensorflow-gpu

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

sudo apt install python3-pip

pip3 install tensorflow-gpu

 
 
  • 1
  • 2
  • 3
  • 4

python代码

import tensorflow as tf
# 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))
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:

这里写图片描述

CUDA9.0 cudnn7.1下载地址
密码:4nvr

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值