我爱编程

桌面版ubuntu 16.04从零开始配置tensorflow

2018-04-14  本文已影响610人  vissac

ubuntu下安装tensorflow gpu版本可视为3步。

1 安装cuda

目前最新版本为cuda 9.1,tensorflow推荐版本为cuda9.0,故我们选择安装9.0版本,cuda 9.0下载
选择合适的安装方式,这里个人选用了runfile安装。

1.1 环境检查

确认有支持cuda的设备
 lspci | grep -i nvidia

确认gcc已安装
 gcc --version

确认内核头文件和包已安装
 uname -r

如未安装可以通过如下命令安装
 sudo apt-get install linux-headers-$(uname -r)

1.2 桌面、驱动等关闭

按下ctrl+alt+f1进入命令行模式,关闭桌面
 sudo service lightdm stop
 sudo init 3

关闭自带驱动重新安装显卡驱动
 sudo /etc/modprobe.d/blacklist-nouveau.conf

在上述配置文件中写入
 blacklist nouveau
 options nouveau modeset=0

保存完后输入
 sudo update-initramfs -u

这里有一个大坑,预警

在完成关闭nouveau后,输入

$ lsmod | grep nouveau

如果没有输出,恭喜你禁用成功,万一有输出,重启,不要使用图形界面,在登录的时候切换到命令行的状态(ctrl + alt + f1)。重复上述操作,没有输出后即为禁用成功,才可进行后续操作,不然可能会造成无限卡登录的情况。
至此,前序准备工作完成。运行以下命令安装cuda,由于网络下载的runfile权限问题,可能不能自动补全,需要手输一下,用户协议一路接受即可,cuda sample可以不装,节约空间。

sudo sh cuda_<version>_linux.run

1.3 环境检查与配置

执行

ls /dev/nvidia*

输出如果包含/dev/nvidia-uvm,则前序步骤完全完成,如果不包含,只有

/dev/nvidia0 /dev/nvidia-modeset /dev/nvidiactl

三个文件中的部分或所有文件,则需添加一个启动脚本

sudo vim /etc/rc.local

如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是
#!/bin/sh -e
把-e去掉(这步很重要,否则它不会加载这文本的内容)
然后把下列内容除了#!/bin/bash外复制到其中,在最后的exit 0之前,保存退出。


#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done

mknod -m 666 /dev/nvidiactl c 195 255

else
exit 1
fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi

将cuda加入环境

sudo vim /etc/profile
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

安装完后输入以下命令重启桌面,然后重启电脑。

sudo service lightdm start
reboot

验证驱动版本

cat /proc/driver/nvidia/version

验证CUDA Toolkit

nvcc -V

2 安装cuDNN

下载对应cuda版本的cuDNN即可,只需下载runtime library。
cuDNN runtime library在实际使用中报了奇怪的错,改为使用tar安装,更为灵活。
cuDNN下载

2.1 检查环境

如果是连续操作应该不会有任何问题,可以跳过这一小节,如果和cuda配置时间相差较多,可能会存在显卡驱动版本过老的问题,需要更新,具体版本要求等参考[cuDNN安装说明](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

2.2 cuDNN安装

进入cuDNN tar的下载文件夹,输入

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*

3 tensorflow gpu安装

tensoflow官网的安装中写了cuda_command_tools的安装,但是在安装cuda的时候,这个应该是已经被一起安装进来了,所以并不需要按照他给定的方法进行安装,直接将环境写入路径即可,

sudo vim /etc/profile

在最后写入

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}/usr/local/cuda/extras/CUPTI/lib64

为了方便,这里个人使用了anaconda代替了系统自带的python版本,并且由于tensorflow是常用工具,并不准备按照官网的教程将其安装入虚环境,首先检查pip

pip -V

确认pip是anaconda的pip后

pip install tensorflow-gpu

由于之前配置完cuDNN之后,我们直接安装的tensorflow,cuDNN的环境还没生效,我们需要重启电脑,重启后即可验证tensorflow是否成功安装。
在检测时候会有warning,无视就好了,能输出结果就行了,等numpy更新看能否解决。

上一篇下一篇

猜你喜欢

热点阅读