Tensorflow/Bazel 在 Power8 上

Tensorflow/Bazel on Power8

我正在尝试 运行 Power8 上的 Tensorflow。由于这在电源上不可用,因此我需要从源头构建它。为了构建它,我需要 Bazel。最新的 Ubuntu 版本不支持 Bazel(据我所知),因此我也需要构建它。在构建 Bazel 时,我遇到错误(如下所列)。

我在 Power8 here. This links me to a github project 上找到了支持 Bazel 电源的 Tensorflow 安装指南。

文章告诉我检查分支 v0.2.0-ppc。然后我运行

$./compile.sh

这导致:

[50 / 392] Writing file src/main/java/com/google/devtools/build/lib/libbazel-rulERROR: /home/th/projects/incrementalDL/bazel/third_party/ijar/BUILD:16:1: C++ compilation of rule '//third_party/ijar:zip' failed: gcc failed: error executing command

v0.3.0-ppc 结果:

gRPC Java plugin not found in third_party/grpc/protoc-gen-grpc-java-0.13.2-linux-ppc64le.exe

master-with-ppc 结果:

Protobuf compiler not found in third_party/protobuf/protoc-linux-ppc64le.exe

最靠近 Bazel 主分支的 Power-Support 结果是:

ERROR: gRPC Java plugin not found in third_party/grpc/protoc-gen-grpc-java-0.15.0-linux-ppc64le.exe

系统:

$lsb_release -a
Description:    Ubuntu 16.04.1 LTS
$java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

我收到了几条私信,它们为我指明了正确的方向,谢谢你。这些是允许我在 Power8 上构建 Tensorflow 的步骤(我在没有 GPU 支持的情况下完成了这些步骤):

  • 已遵循此 blogpost
  • 中的要求
  • 使用此 github 中的 v0.2.0-ppc-protobuf 分支用于 Bazel
  • 已完成 bash Bazel 的工作,如所述 here
  • 继续按照之前的blogpost从提到的git处检查tensorflow并使用推荐的cherry-picks,但没有为GPU编译
  • 使用

    构建 pip 包
    $ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
    

    因为我不想为 GPU 编译

  • 出现错误

    ERROR: /home/th/.cache/bazel/_bazel_th/994c6fd5bf0a6c9879e74e714d455083/external/farmhash_archive/BUILD:5:1:
    configure: WARNING: 'missing' script is too old or missing
    ./config.guess: unable to guess system type
    

    已按照错误消息中的描述下载最新的 config.guess 和 config.sub:

    http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
    and
    http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
    

    并将其放置在“lpralf 于 7 月 14 日发表评论”中所描述的目录中 tensorflow github issue,但这没有用,所以我向 ./[tensorflow-root-dir 添加了 2 个副本]/farmhash.BUILD(因为我的错误指示 farmhash),就在配置之前是 运行:

        cmd = "pushd external/farmhash_archive/%s; workdir=$$(mktemp -d -t tmp.XXXXXXXXXX); cp -a * $$workdir; pushd $$workdir; cp [absolute-path-to-the-downloaded-config.guess]/config.guess .; cp [absolute-path-to-the-downloaded-config.sub]/config.sub .;./configure; popd; popd; cp $$workdir/config.h $(@D); rm -rf $$workdir;" % prefix_dir,
    
  • $ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    
  • $ sudo pip install /tmp/tensorflow_pkg/tensorflow-[whatever-package-is-present].whl
    
  • 测试

    $ python ./tensorflow/models/image/mnist/convolutional.py
    

    *注意tensorflow根目录里面有一个tensorflow目录