服务器搭建tensorflow-gpu C API运行环境

TensorFlow 提供了一个以 c_api.h 定义的 C 语言 API,此 API 偏重于简洁性和一致性,并提供较python版本更高的执行性能。在生产环境的服务器上一般推荐使用该库的GPU版本,已提供最高的性能和稳定性。下面介绍该环境的安装部署方式。

0.系统要求

由于编译基于tensorflow C API的程序需要gcc4.8以上,所以对Linux系统版本有要求。本文基于CentOS系统部署。需要CentOS 7, 在CentOS6上gcc版本默认为4.4.7,无法满足要求。另外Linux kernel 需要3.10或以上,CentOS7系统的默认内核满足要求。

1. 安装Nvidia显卡驱动

1. 1 下载显卡驱动

https://www.nvidia.cn/Download/index.aspx?lang=cn

下载 NVIDIA-Linux-x86_64-396.37.run文件

1.2 禁用nouveau驱动

# 检查是否有nouveau在运行

lsmod | grep nouveau

# 开机将nouveau.modeset加入黑名单

#  centOS7

vim /lib/modprobe.d/dist-blacklist.conf

#  centOS 6

vim /etc/modprobe.d/blacklist.conf

#blacklist nvidiafb

blacklist nouveau 

  options nouveau modeset=0

1.3 重建系统镜像

# 备份

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak 

# 创建新系统镜像

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)

1.4 重启并查看nouveau驱动是否已被禁用

reboot

lsmod | grep nouveau

1.5 安装Nvidia驱动并重启

sudo sh NVIDIA-Linux-x86_64-396.37.run

# 安装过程提示是否安装32bit兼容包,选No,其他都默认选项

reboot

# 检查驱动是否安装正确

    nvidia-smi

2. 安装cuda toolkit (包含显卡驱动)

2.1 下载cudatoolkit 9.0

地址:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=runfilelocal

2.2 按官方教程安装cuda  

官方教程:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#runfile

sudo sh cuda_9.0.176_384.81_linux.run

sudo  vim /etc/profile

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source /etc/profile

2.3  验证安装

nvcc -V

cd ~/NVIDIA_CUDA-9.0_Samples

# 如果系统没有g++需要提前安装(yum install gcc-c++)

make

cd ~/NVIDIA_CUDA-9.0_Samples/bin//x86_64/linux/release

./deviceQuery

3. 安装cudnn

3.1 下载cudnn 7.1.4 Library for Linux

下载地址:https://developer.nvidia.com/rdp/cudnn-download

3.2 按官方教程安装cudnn

参见:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux-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.3 验证安装

#下载cudnn示例代码

wget https://ks3-cn-beijing.ksyun.com/ksplayer/AI_DNN/cudnn_samples_v7.zip

unzip cudnn_samples_v7.zip

cd cudnn_samples_v7/mnistCUDNN

make clean && make

./mnistCUDNN

4. 安装OpenCV

#下载 OpenCV 3.1

wget http://ai-hvideo.ks3-cn-beijing.ksyun.com/sources/opencv-3.1.0.zip

unzip opencv-3.1.0.zip  &&  cd opencv-3.1.0

mkdir build  &&  cd build

yum install cmake

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=OFF -D WITH_IPP=ON ..

make -j7

sudo make install

sudo ldconfig

cd  ../3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64

sudo cp libippicv.a  /usr/local/lib/

sudo ldconfig

5. 安装tensorflow C库

按官方教程:https://www.tensorflow.org/install/install_c


PS:服务器间scp数据方法

1)生成秘钥文件( 参见:https://blog.csdn.net/wang7dao/article/details/7724917)

从A向B拷贝数据,在A(165)上生成秘钥,将公钥添加到B(168)的~/.ssh/authorized_keys中,登录A 用scp文件到B

2)拷贝数据:

login A server 

scp cuda_9.0.176_384.81_linux.run 10.xxx.xxx.xxx:/home/chenjin

你可能感兴趣的:(服务器搭建tensorflow-gpu C API运行环境)