Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

AI技术研究院 2019-06-21

因为windows只支持py3版本的tensorflow,而很多项目是用py2构建的,所以我又尝试在Ubuntu16.04中再次安装GPU版的tensorflow。

我们需要安装的内容有Cuda8.0和Cudnn5.1和tensorflow-gpu。

硬件检测

检查你的显卡是否可以安装Cuda

首先,你要有一块NVIDA的显卡,然后性能评分要大于3.0

TensorFlow GPU support requires having a GPU card with NVidia Compute Capability >= 3.0. Supported cards include but are not limited to: 
NVidia Titan 
NVidia Titan X 
NVidia K20 
NVidia K40

显卡性能检测请看这里

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

简单得说起来呢,你要有一块最好是GTX的显卡,或者有一块还算新的(7,8,9,10系列),再或者在同代中还算凑合的(640之类)的卡,不然还是攒钱买台游戏本吧哦,不对,是学习机

笔者的卡是GTX950m,虽然比不上像1080和泰坦这样的逆天神卡,但是2G显存还是能在笔记本中排前十的当年为了玩游戏买的游戏本,今天居然能用来学习,也是感慨良多啊,以前玩游戏是多么愧疚万分

既然显卡可以用,那我们就要开始正式安装Cuda了。

下载Cuda

按装官方教程,我们可以应该安装Cuda8.0和Cudnn V5.1
(由于Cuda7.5最高支持15.04,所以不推荐安装Cuda7.5,虽然也能运行。另外Cuda8.0一定要安装Cudnn5.1,版本必须匹配)

大家可以到这里来下载Cuda8.0

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

大家注意在这里选funfile local,因为选deb的话会遇到apt get的源损坏问题,所以最好不要下那个

降级gcc和g++

由于Cuda不支持新版本的gcc和g++,所以如果建议先降级到4版本,具体方法请Google

安装显卡驱动

敲黑板!!!!
一定不要用Cuda自带的显卡驱动!!!兼容性不太好,很容易把驱动搞坏,导致循环登陆问题。
出了这个问题请参看Ubuntu 16.04安装NVIDIA驱动后循环登录问题
主要就是要重新安装驱动,主要是这行代码起作用:

sudo apt-get install nvidia-367

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

然后选择最上面一个NVIDIA驱动,进行安装

请坐和放宽,关闭你的图形界面

大家看到这里是不是觉得我疯了,不,不是我疯了,是疯了NVIDA。在安装Cuda的时候,我们要关闭X服务。当时看到请检查你的X服务是否关机的时候,我整个人是懵逼的,啥,我啥X服务,还特殊服务呢。。。我把SS都关了,甚至重启了刚开机就装都提示请检查关闭X

这尼玛X是啥 ,会不会说人话,是不是要劳资把系统都关了?在咨询群里大牛后我彻底傻了,真的是要把图形界面关了,不,准确说是要把图形界面关了。恩,对,关了图形界面,用命令行安装。。。

我类个去。。。。

好的,关就关嘛,随怕随。不过在关之前,请记住你的cuda runfile的下载路径备用。

请坐稳扶好,坐窗边的旅客请不要把头手伸出窗外,我们要开始时空穿梭,请在终端中打下如下命令:

sudo service lightdm stop

忽然间,你会感到一阵清风吹过你的面庞,那是因为我们在时空穿梭。。。2333, 欢迎回到上个世纪,在很久很久已经,我们只有命令行。。。。

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

不要以为上面那张图没加载出来,就是那样的。为什么,因为我们关了图形界面。。2333而且,我们还没调出命令行。。。。

好了,按住

CTRL + ALT + F1

我们调出了命令行,开始装Cuda

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

输入账户密码登陆

cd 到你要下载的目录,执行

sudo sh cuda_8.0.44_linux.run

然后你会看到

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: y
如果这里不安装的话后面可能会出现找不到Cuda驱动的问题
但是很多文章认为安装的话会把之前安装的驱动废掉
两篇文章供参考
Ubuntu16.04下CUDA8.0+Caffe安装配置过程
ubuntu14.04+cuda8.0(GTX1080)+caffe安装

如果你刚才选了y,那么这里还会问你要不要装X configuration,这里就绝对不能选y了
因为前面其实和Cuda driver有关,装了一样能运行。但是如果你装了X configuration,也就是NVIDIA驱动,那就彻底废了。
因为这会导致驱动损坏,发生循环登录问题。

如果不幸发生了循环登录问题,请参考这篇文章,重装驱动解决:
Ubuntu 16.04安装NVIDIA驱动后循环登录问题

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:
回车

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /root ]:
回车

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Installing the CUDA Samples in /root …
Copying samples to /home/derek/NVIDIA_CUDA-8.0_Samples now…
Finished copying samples.

= Summary =

Driver: Installed
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/derek

Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.

To install the driver using this installer, run the following command, replacing with the name of this run filesudo.run -silent -driver

安装成功,撒花~在命令行中打下如下代码,回到文明世界:

sudo service lightdm start

设置Cuda环境变量

还别高兴太早,没设环境变量待会要出事的,就像下面TensorFlow运行失败

Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)

sudo vi ~/.bash_profile

打开配置文件,最后们加入以下几行

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda-8.0

wq 保存离开。如果你没装 /usr/local/cuda,请自行了断:修改路径

环境变量的设置不是太熟悉,大家可以自行google。或者把上面两行直接粘贴到终端中,会理解生效,不过仅在该终端中有效

安装过程可以参考这篇文章
深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

Cudnn 安装

下载Cudnn

这里下载。
当然你先得注册一个NVIDA账号,添一堆问卷。
选择 Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0下载
cuDNN v5.1 Runtime Library for Ubuntu16.04 Power8 (Deb)
安装
或者下载tar,解压后会得到一个Cuda文件夹,复制到Cuda-8.0文件夹中

sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

检查是否复制成功,否则会在import tf时出错

安装TensorFlow

这里不好意思我就假设你pip装好,网络环境正常,网路不好的到github上找别人下好的下载吧。。。执行下面命令

pip install tensorflow-gpu

如果安装缓慢老中断可以先把numpy等相关的包装好

测试TF

照着官网打呗,这还有啥好说的呢~恭喜安装成功!!!!

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>

相关推荐