Tensorflow-gpu版本安装

最近给公司部署一套深度学习相关的环境,以tensorflow为框架。简单整理下整个的部署过程。

tensorflow官方网站:https://www.tensorflow.org

服务器选型

我们的tensorflow是基于gpu的版本,使用的是tensorflow-gpu 1.12.0版本。既然是gpu的版本,那么首先得需要一个带有gpu的服务器。我们这里直接使用阿里云服务器,型号如下:

gpuserver

NVIDIA GPU驱动安装

那么既然有了带gpu的服务器,gpu驱动就必然是一个绕不开的话题。通过上面的选型我们可以知道,阿里云的购买页面明确给出了gpu的型号,我们需要去到gpu官方网站,根据型号选择驱动。

通过如下页面查找相应的GPU驱动:
https://www.nvidia.com/Download/index.aspx?lang=en-us
NVIDIA

下载的驱动名称示例:NVIDIA-Linux-x86_64-410.104.run

安装的话相对比较简单:

# 通过shell运行,然后按照提示操作即可
sh NVIDIA-Linux-x86_64-410.104.run

验证是否正常安装了:

[root@ctnr ~]# nvidia-smi 
Tue Mar 26 11:31:34 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P4            Off  | 00000000:00:08.0 Off |                    0 |
| N/A   28C    P8     7W /  75W |      0MiB /  7611MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

查看当前服务器显卡的个数:

yum install -y lspci

[root@ctnr ~]# lspci|grep -i nvidia
00:08.0 3D controller: NVIDIA Corporation GP104GL [Tesla P4] (rev a1)

其中00:08.0是显卡的代号,通过如下方式可以查看详细的显卡信息:

[root@ctnr ~]# lspci -v -s 00:08.0
00:08.0 3D controller: NVIDIA Corporation GP104GL [Tesla P4] (rev a1)
	Subsystem: NVIDIA Corporation Device 11d8
	Physical Slot: 8
	Flags: bus master, fast devsel, latency 0, IRQ 39
	Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
	Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Memory at f2000000 (64-bit, prefetchable) [size=32M]
	Capabilities: [60] Power Management version 3
	Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Capabilities: [78] Express Endpoint, MSI 00
	Capabilities: [c8] Vendor Specific Information: Len=08 <?>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia

这里是tensorflow官方给出的gpu支持:https://www.tensorflow.org/install/gpu

cuda和cudnn的安装

tensorflow-gpu要想正常运行,除了必要的gpu驱动,还依赖cuda和cudnn两个sdk。

下面是tensorflow-gpu版本依赖的cuda和cudnn的版本:

https://www.tensorflow.org/install/source

tensorflow-gpu

cuda是深度学习的sdk
cudnn是神经网络的sdk

cuda安装

cuda的下载地址:

https://developer.nvidia.com/cuda-90-download-archive

cuda

需要下载cuda包,以及所有的补丁文件,我这里因为是centos,所以下载的全是rpm包。直接通过yum安装即可:

yum localinstall -y cuda-repo-rhel7-9-0-*.rpm

需要说明的是,这些包都只是本地仓库包,也就是说,安装了这些包,并不会真正安装cuda,而只是把cuda的包在本地生成了一个本地yum源。这个时候,就可以直接使用yum install -y cuda来安装cuda了。

验证安装:

[root@ctnr ~]# cat /usr/local/cuda/version.txt 
CUDA Version 9.0.176

cudnn的安装

cudnn的下载地址:

https://developer.nvidia.com/rdp/cudnn-download

cudnn

需要说明的是,要下载cudnn,需要先登录,这就要求我们得要有nvidia的帐号。

这两个包也是rpm包,直接安装即可。

安装完成后的验证方式如下:

[root@ctnr ~]# cat /usr/include/cudnn_v7.h |grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

上面的三行,分别代表主版本、次版本以及修定版本

在上图中,其实可以看到,除了定制的系统版本,cudnn也提供通用版本,即cnDNN Library for Linux,下载下来是一个tar.gz的文件,我们可以通过如下方式安装即可:

tar xf cudnn-9.0-linux-x64-v7.5.0.56.tgz
cp cuda/lib/64/libcudnn.so* /usr/local/cuda/lib64/
cp cuda/lib64/libcudnn_static.a /usr/local/cuda/lib64/
cp cuda/include/cudnn.h /usr/include/

另外,还需要说明的是,我尝试在windows上直接下载通用版本的时候,下载的总是一个solitairetheme8为后缀的一个卡牌游戏。在linux上通过wget的方式下载,则是正常的压缩包。

tensorflow-gpu安装

以上配置都做好了以后,tensorflow-gpu的安装相对倒是比较简单。官方基于Bazel使用源码编译的安装方式可以直接参考这里:https://www.tensorflow.org/install/source#build_the_package

我这里简化部署,直接使用pip安装:

yum install -y python36 python36-pip

pip3 install -U pip six numpy wheel mock
pip3 install -U  keras_applications==1.0.5 --no-deps
pip3 install -U keras_preprocessing==1.0.3 --no-deps

pip3 install tensorflow-gpu-1.12.0

至此,tensorflow安装完成。

posted @ 2019-03-26 13:53  breezey  阅读(18001)  评论(0编辑  收藏  举报