服务器搭建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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,009评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,808评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,891评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,283评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,285评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,409评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,809评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,487评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,680评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,499评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,548评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,268评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,815评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,872评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,102评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,683评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,253评论 2 341

推荐阅读更多精彩内容

  • 1. 小年的鞭炮声如期而至,声声拍击着她的心脏。“啪啪”、“啪啪啪”、“噼里啪啦”。 她一人开车嘘嘘穿过空荡荡的马...
    豫易阅读 141评论 3 0
  • 眼训善 同善
    rachez阅读 404评论 0 0
  • 深圳博物馆挺不错的,每年都会有不同专题的展览,这次一进门口是北大的120年庆的主题,一楼是画家潘玉良的画展,二楼是...
    柳彤阅读 138评论 0 3
  • 今天是母亲的生日,一直都没有为母亲专门纪念过。本打算今年母亲过生日要买一辆车子,拉着她去外面的饭店吃饭,再买一个不...
    大饼变小了阅读 282评论 5 4