机器学习深度学习-推荐系统-CV-NLP数据科学家

手把手教你在远程RedHat服务器上安装GPU版的tensorf

2017-05-14  本文已影响581人  工程师milter

本文参考了文章安装gpu版的tensorflow,作者是一个很优秀上进的女孩,博客文章质量也很高。之所以还要写这篇文章有三个原因,一是原文是在Ubuntu上安装的,而我是在RedHat上安装,细节上有不同之处;二是原文是本地安装,而我是远程安装;三是想要更加详细地梳理出每一步的作用。

假设我们现在已经远程登录了RedHat服务器,准备安装tensorflow了。

一、为什么要安装cuda

我们需要明白,安装GPU版的tensorflow,其实就是让tensorflow能够利用GPU进行计算。目前,tensorflow主要支持利用Nvida的GPU进行计算,为什么主要支持Nvida的GPU呢?因为Nvida针对自家GPU开发了一套SDK,大大方便了利用它家的GPU进行通用的计算,这套SDK就是cuda。毫无疑问,tensorflow也主要是通过cuda利用GPU进行计算的。所以我们要先安装cuda,tensorflow规定,cuda的版本不能低于7.0,一般情况下,安装8.0版本的cuda就很好了。

二、检查你的机器能不能安装cuda

1、首先看看你的GPU是不是Nvida家出

因为cuda是Nvida专为自己家的GPU开发的SDK,所以我们必须确保我们的机器上的显卡是Nvida的,检查命令比较简单:

lspci | grep -i nvidia

如果输出中有内容,说明我们的显卡是Nvida的。

2、看看你的Linux版本是否支持cuda

因为cuda是与操作系统,gcc版本和c运行库紧密结合在一起的,所以,我们要先检查一下我们的Linux版本是否支持cuda,对于cuda8.0而言,下图中就是它对系统的要求:

cudaandlinux.PNG

一般来讲,常用的linux发行版都是可以支持cuda的,不过最好还是对照上面的图检查一下,以防万一。

二、如何安装cuda

应该说,这一步是最难的,因为不同的操作系统安装方法是不一样的,下面我们一步一步来。

1、关掉服务器上的X-server

当前Navida显卡已经有一个开源驱动在运行,必须将它停止,因为cuda中已包含有显卡驱动,为停止开源驱动,我们首先需要关闭开源驱动的X-server。关闭的方法并不统一,我们的是远程连接的服务器,关闭方法是:
sudo init 3
注意,不同的linux版本关闭X-server的方法是不一样的!
在你的机器上如何关闭X-server,请查看相关文档。

2、关闭开源驱动

关闭的X-server后,我们就可以放心地关闭开源驱动了。注意:关闭开源驱动的方法同样是因机器而异的,所以不要盲目地试用网上查找到的关闭开源驱动的命令,最权威的方法在Navdia官网上,请到这里查看你的机器如何关闭开源驱动:
不同机器关闭开源驱动的方法
我的机器是redhat,关闭方法是这样的,首先,创建文件:
/etc/modprobe.d/blacklist-nouveau.conf
里面的内容写:
blacklist nouveau
options nouveau modeset=0
然后,执行命令:
sudo dracut --force

3、安装cuda

第一步就是下载cuda,下载完成后,会得到一个cuda_X.X.XX_linux.run的文件,X表示版本号。
第二步就是为这个文件添加执行权限
chmod u+x cuda_X.X.XX_linux.run
第三步就是执行这个文件:
sudo ./cuda_X.X.XX_linux.run
文件执行开始时会有license说明,直接按q键即可退出,接着输入accept协议,然后按y键选择安装驱动程序。
然后按y键选择cuda安装路径,一般用默认的就行了。
然后按n键不选择安装cuda samples,如果你选择y也没有关系。
注意:当安装过程中询问你是否安装opengl时,要选择No,因为可能有兼容性问题。当询问你是否运行Nvidia x-config时,一定要选择yes!

4、安装cudnn

首先,到这里注册一个账号,就可以下载cudnn了。下载后,将它解压到cuda的安装目录即可。
比如,如果cuda安装目录是 /usr/local/cuda-8.0
那么就把cudnn解压到 /usr/local

5、安装Tensorflow

最后一步,安装tensorflow,首先要到官网上下载预编译好的tensorflow的whl包。注意下载的版本要和服务器上的python版本一致。
然后,cd到whl包所在的目录,执行
pip install XXX.whl
XXX代表tensorflow的whl包名。

如果顺利,就一切OK了!

如果大家在安装过程中有什么问题,欢迎留言交流!

上一篇下一篇

猜你喜欢

热点阅读