目录
服务器选型
NVIDIA GPU 驱动安装
cuda 和 cudnn 的安装
cuda 安装
cudnn 的安装
tensorflow-gpu 安装
最近给公司部署一套深度学习相关的环境, 以 tensorflow 为框架. 简单整理下整个的部署过程.
tensorflow 官方网站: https://www.tensorflow.org
服务器选型
我们的 tensorflow 是基于 gpu 的版本, 使用的是 tensorflow-gpu 1.12.0 版本. 既然是 gpu 的版本, 那么首先得需要一个带有 gpu 的服务器. 我们这里直接使用阿里云服务器, 型号如下:
NVIDIA GPU 驱动安装
那么既然有了带 gpu 的服务器, gpu 驱动就必然是一个绕不开的话题. 通过上面的选型我们可以知道, 阿里云的购买页面明确给出了 gpu 的型号, 我们需要去到 gpu 官方网站, 根据型号选择驱动.
通过如下页面查找相应的 GPU 驱动:
https://www.nvidia.com/Download/index.aspx?lang=en-us
下载的驱动名称示例: 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
cuda 是深度学习的 sdk
cudnn 是神经网络的 sdk
cuda 安装
cuda 的下载地址:
https://developer.nvidia.com/cuda-90-download-archive
需要下载 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, 需要先登录, 这就要求我们得要有 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 安装完成.
来源: https://www.cnblogs.com/breezey/p/10599705.html