美文网首页
服务器搭建tensorflow-gpu C API运行环境

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

作者: 陈金Marlon | 来源:发表于2018-08-05 10:37 被阅读0次

    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运行环境

          本文链接:https://www.haomeiwen.com/subject/avmopftx.html