【问题标题】:Tensorflow/Bazel on Power8Power8 上的 TensorFlow/Bazel
【发布时间】:2016-10-10 13:40:00
【问题描述】:

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

我在 Power8 here 上找到了 Tensorflow 的安装指南。这将我链接到支持 Bazel 电源的 github project

文章告诉我结帐分支 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)

【问题讨论】:

    标签: tensorflow bazel


    【解决方案1】:

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

    • 遵循blogpost中的要求
    • 将此github 中的 v0.2.0-ppc-protobuf 分支用于 Bazel
    • 按照here 的描述完成了 Bazel 的 bash 工作
    • 继续按照之前的 blogpost 从提到的 git 位置检查 tensorflow 并使用推荐的樱桃选择,但没有为 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 commented on Jul 14”提到的目录中,如tensorflow github issue 所述,但这不起作用,所以我在 ./[tensorflow-root-dir]/farmhash 中添加了 2 个副本。 BUILD(因为我的错误表明farmhash),就在运行configure之前:

          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目录

    【讨论】:

    • 即使它构建了,也存在一个不确定的堆栈粉碎错误。这是由于 glibc。更多信息here
    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多