tensorflow: TensorFlow 1.8.0-rc1 fails on aarch64 platforms

Building TensorFlow 1.8.0-rc0 from source fails on aarch64 platforms (NVIDIA TX1 and Linaro HiKey960) with a linking error for some Neon function:

Linking of rule '//tensorflow/cc:ops/remote_fused_graph_ops_gen_cc' failed (Exit 1)
bazel-out/host/bin/_solib_arm/_U_S_Stensorflow_Scc_Cops_Sremote_Ufused_Ugraph_Uops_Ugen_Ucc___Utensorflow/libtensorflow_framework.so: error: undefined reference to 'png_init_filter_functions_neon'

System information

  • Have I written custom code (as opposed to using a stock example script provided in TensorFlow): N/A (a build problem)
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04 (JetPack 3.1)
  • TensorFlow installed from (source or binary): source
  • TensorFlow version (use command below): 1.8.0-rc0
  • Python version: 2.7.12
  • Bazel version (if compiling from source): 0.12.0
  • GCC/Compiler version (if compiling from source): 5.4.1
  • CUDA/cuDNN version: N/A (CPU ony)
  • GPU model and memory: N/A (CPU only)
  • Exact command to reproduce: Install dependencies and build via CK-TensorFlow:
$ sudo apt install liblapack-dev libatlas-dev
$ sudo pip install enum34 mock pillow wheel absl-py scipy ck
$ ck pull repo:ck-tensorflow
$ ck install ck-env:package:tool-bazel-0.12.0-linux
$ ck install package:lib-tensorflow-1.8.0-src-cpu --env.CK_HOST_CPU_NUMBER_OF_PROCESSORS=1

NB: Restricting the number of building processes to 1 is necessary to prevent running out of memory on the NVIDIA TX1 platform (4 GB and no swap enabled) or similar.

Describe the problem

Building TensorFlow 1.8.0-rc0 fails on aarch64 platforms (NVIDIA TX1 and Linaro HiKey960). Similar instructions for TensorFlow 1.7.0 with Bazel 0.11.1 worked well (both with and without XLA support):

$ ck install package:lib-tensorflow-1.7.0-src-cpu --env.CK_HOST_CPU_NUMBER_OF_PROCESSORS=1
$ ck install package:lib-tensorflow-1.7.0-src-cpu-xla --env.CK_HOST_CPU_NUMBER_OF_PROCESSORS=1

$ ck show env --tags=tensorflow,v1.7
Env UID:         Target OS: Bits: Name:                                       Version: Tags:

ed191cc45dda7ee4   linux-64    64 TensorFlow library (from sources, cpu, xla) 1.7      64bits,bazel,channel-stable,host-os-linux-64,lib,needs-bazel,needs-bazel-0.11.1,target-os-linux-64,tensorflow,tensorflow-cpu,v1,v1.7,v1.7.0,vcpu,vsrc,vxla
ed191cc45dda7ee3   linux-64    64 TensorFlow library (from sources, cpu)      1.7      64bits,bazel,channel-stable,host-os-linux-64,lib,needs-bazel,needs-bazel-0.11.1,target-os-linux-64,tensorflow,tensorflow-cpu,v1,v1.7,v1.7.0,vcpu,vsrc

Source code / logs

ERROR: /home/anton/CK_TOOLS/lib-tensorflow-src-cpu-1.8-linux-64/src/tensorflow/cc/BUILD:510:1: Linking of rule '//tensorflow/cc:ops/remote_fused_graph_ops_gen_cc' failed (Exit 1)
bazel-out/host/bin/_solib_arm/_U_S_Stensorflow_Scc_Cops_Sremote_Ufused_Ugraph_Uops_Ugen_Ucc___Utensorflow/libtensorflow_framework.so: error: undefined reference to 'png_init_filter_functions_neon'
collect2: error: ld returned 1 exit status
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 15373.402s, Critical Path: 153.22s
FAILED: Build did NOT complete successfully

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 32 (14 by maintainers)

Most upvoted comments

@gunan - can you take a look at this PR as well? https://github.com/tensorflow/tensorflow/pull/18892 I want to get the official binaries built so I can extend Tensorflow for C# (https://github.com/migueldeicaza/TensorFlowSharp) to use ARM natively.

Potentially the same/related issue - the nightly Raspberry Pi builds are hitting this (and have been failing for several weeks now): http://ci.tensorflow.org/view/Nightly/job/nightly-pi/245/console