前言
之前写过一篇关于在Windows 10上安装tensorflow的例子,这篇博文主要讨论如何在没有root权限的服务器的GPU节点上源码编译tensorflow.
安装TensorFlow pip 软件包依赖项:
1
2
3
| $ pip install -U --user pip six numpy wheel setuptools mock 'future>=0.17.1'
$ pip install -U --user keras_applications --no-deps
$ pip install -U --user keras_preprocessing --no-deps
|
安装Bazel:
下载Bazel
Bazel 版本必须在tensorflow/configure.py
中指定的介于_TF_MIN_BAZEL_VERSION
和_TF_MAX_BAZEL_VERSION
之间的任一版本。
从github上的Bazel项目上下载bazel-3.7.2-installer-linux-x86_64.sh.
安装Bazel
1
| $ bash bazel-3.7.2-installer-linux-x86_64.sh --prefix=~/soft/bazel-3.7.2
|
安装tensorflow
下载tensorflow
1
| $ git clone https://github.com/tensorflow/tensorflow.git
|
配置build
tensorflow 要求gcc的版本大于4.9,因此,可以在gpu节点上先enable gcc9的环境。
1
| $ scl enable devtoolset-9 bash
|
配置build
选择gcc9的环境,python3的环境,选择cuda,tensorRT不需要。
编译
1
| $ bazel build --config=v2 --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
|
编译大概需要16 h
构建whl
1
| $ ./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg
|
安装软件包
1
| $ pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl
|
报错
gcc
1
| gcc: error: unrecognized command line option '-std=c++14'
|
主要原因是服务器的默认gcc版本是4.8.5, 采用scl 添加完gcc9的环境后,需要重新configure。
git
1
| fatal: unable to find remote helper for 'https'
|
把登陆节点的/usr/libexec/git-core
和/usr/bin/git
都纳入到自己的PATH中,即可解决这个问题。
参考资料
修订历史