Centos7配置编译Tenflow1.15 GPU版本笔记

  最近在学习智能计算相关的东西,后期可能涉及到对Tensorflow源码的修改(添加自己的算子啥的),在此之前,最让程序员痛苦的“配环境”这一环却是必不可少的。经过多日的查资料、安装、出现问题、再查资料、修复bug、重装、等等一系列的尝试后,找到了针对我自己需求的可行的完整配置方案,记录在此,以备不时之需。

centos7+python3.6.8+cuda10.0+cudnn7+nccl(多gpu环境选装,我的笔记本用不上,因此没装)
 
安装python3.6(系统自带的python2.7版本在后期编译时报错,GCC提示无法找到部分python库的头文件,具体原因还没搞明白,建议直接上3.x)
1、环境配置
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y
yum install -y git (确保git最新)
2、下载安装包
3、解压安装
tar -xvJf  Python-3.6.x.tar.xz
mkdir /usr/local/python3
cd Python-3.7.2
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
make && make install
4、创建软连接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
配置python环境
python3 -m pip install --upgrade pip
pip3 install "numpy<1.19" future six wheel setuptools mock keras
pip3 install -U --user keras_applications --no-deps
pip3 install -U --user keras_preprocessing --no-deps
 
更新yum源
1、进入到yum源文件
 cd /etc/yum.repos.d/
2、创建一个repo_bak目录,用于保存系统中原来yum的repo文件
 sudo mkdir repo_bak
3、备份yum源文件至repo_bak:sudo mv *.repo repo_bak/
4、到网易和阿里开源镜像站点下载系统对应版本的repo文件
 wget http://mirrors.aliyun.com/repo/Centos-7.repo
5、清除系统yum缓存并生成新的yum缓存:
 yum clean all 清除系统yum 缓存
 yum makecache 生成yum缓存
6、安装epel源
 yum list | grep epel-release
 yum install -y epel-release
7、使用阿里开源镜像提供的epel源
 wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
8、再次清除系统yum缓存,并重新生成新的yum缓存
 yum clean all 清除yum缓存
 yum makecache 生成yum缓存
9、查看系统可用的yum源和所有的yum源
 yum repolist enabled
 
更新gcc/g++(需支持C++14以上)
# sudo yum install centos-release-scl
# sudo yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
# scl enable devtoolset-7 bash
# gcc -v  # 查看版本有没有改变
# echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile  # 将改变写入系统变量,永久生效,如果是非root用户,使用 sudo source /opt/rh/devtoolset-7/enable
 
安装bazel
1、下载bazel安装包(0.24.1~0.26.1之间的版本都可以,我使用的是0.25.3):https://github.com/bazelbuild/bazel/releases   https://mirrors.huaweicloud.com/bazel/0.26.1/
2、安装bazel(下载.sh文件直接运行)
 
编译tensorflow
1、下载tensorflow源码
 官方:git clone https://github.com/tensorflow/tensorflow.git
 加速1:git clone https://github.com.cnpmjs.org/tensorflow/tensorflow.git
 加速2:git clone https://hub.fastgit.org/tensorflow/tensorflow.git
2、进入对应分支(此处为tensorflow1.15):
 cd tensorflow
 git checkout r1.15
3、构建配置选项:
 ./configure
 所有的非Yes/No选项,使用默认选项,直接enter
 除了以下选项,其余yes/no选择题,都选择No
 Do you wish to build TensorFlow with CUDA support? [y/N]: Y
4、编辑Tensorflow/WORKSPACE文件
头部 load... 这一行后面添加如下信息(二选一,这一步针对无法科学访问外网导致的 git-clone 失败)
http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "aed1c249d4ec8f703edddf35cbe9dfaca0b5f5ea6e4cd9e83e99f3b0d1136c3d",
    strip_prefix = "rules_docker-0.7.0",
    urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.7.0.tar.gz"],
)
http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "87fc6a2b128147a0a3039a2fd0b53cc1f2ed5adb8716f50756544a572999ae9a",
    strip_prefix = "rules_docker-0.8.1",
    urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.8.1.tar.gz"],
)
5、编译
 bazel build --config=v1 --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
 ./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg
 pip3 install /tmp/tensorflow_pkg/tensorflow-xxx-tags.whl
6、check
 新建终端,在tensorflow文件夹外部打开python3,import tensorflow
 
posted on 2020-08-13 14:02  潇洒的大宝  阅读(491)  评论(0编辑  收藏  举报