New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tensorflow build from sources fails #9697

Closed
rajivkapoor opened this Issue May 5, 2017 · 66 comments

Comments

Projects
None yet
@rajivkapoor

rajivkapoor commented May 5, 2017

System information

Tensorflow build from TF 1.1 sources cloned from GIT fails. This was working a couple of days ago on the same machine.

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
    Ubuntu 16.04, kernel 4.4.0-75-generic
    Hardware: Skylake server, nVidia P4

  • TensorFlow installed from (source or binary):
    Source

  • TensorFlow version (use command below):
    I believe is 1.1-rc2 ... cannot get it from TF itself because unable to build in the first place

  • Bazel version (if compiling from source):
    Build label: 0.4.5
    Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
    Build time: Thu Mar 16 12:19:38 2017 (1489666778)
    Build timestamp: 1489666778
    Build timestamp as int: 1489666778

  • CUDA/cuDNN version:
    CUDA 8.0
    cuDNN 5.1.10

  • GPU model and memory:
    nVidia P4, 8GB

  • Exact command to reproduce:
    Followed exactly the steps to build from source from - https://www.tensorflow.org/versions/master/install/install_sources

Did the following:
./configure - used all defaults (see attached -
configure_nocuda.txt
)

bazel build --verbose_failures --config=opt //tensorflow/tools/pip_package:build_pip_package
OR
bazel build --verbose_failures --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Both fail with the same issue (see below for the non cuda build)

Output from the environment collection script is attached -
tf_env.txt

Describe the problem

Build fails. I have tried it with --config=cuda also - same issue.

Source code / logs

Here are the first couple of errors

System information

Tensorflow build from TF 1.1 sources cloned from GIT fails. This was working a couple of days ago on the same machine.

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
    Ubuntu 16.04, kernel 4.4.0-75-generic
    Hardware: Skylake server, nVidia P4

  • TensorFlow installed from (source or binary):
    Source

  • TensorFlow version (use command below):
    I believe is 1.1-rc2 ... cannot get it from TF itself because unable to build in the first place

  • Bazel version (if compiling from source):
    Build label: 0.4.5
    Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
    Build time: Thu Mar 16 12:19:38 2017 (1489666778)
    Build timestamp: 1489666778
    Build timestamp as int: 1489666778

  • CUDA/cuDNN version:
    CUDA 8.0
    cuDNN 5.1.10

  • GPU model and memory:
    nVidia P4, 8GB

  • Exact command to reproduce:
    Followed exactly the steps to build from source from - https://www.tensorflow.org/versions/master/install/install_sources

Did the following:
./configure - used all defaults (see attached -
configure_nocuda.txt
)

bazel build --verbose_failures --config=opt //tensorflow/tools/pip_package:build_pip_package
OR
bazel build --verbose_failures --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Both fail with the same issue (see below for the non cuda build)

Output from the environment collection script is attached -
tf_env.txt

Describe the problem

Build fails. I have tried it with --config=cuda also - same issue.

Source code / logs

Here are the first couple of errors in bold from a non-cuda build (compete build log is attached -
tf_build_nocuda.txt):

ERROR: /home/rajka/tensorflow/tensorflow/core/kernels/BUILD:2093:1: C++ compilation of rule '//tensorflow/core/kernels:self_adjoint_eig_v2_op' failed: gcc failed: error executing command
(cd /home/rajka/.cache/bazel/bazel_rajka/28f0a9835f793d5627ca9486394f31f2/execroot/tensorflow &&
exec env -
PYTHON_BIN_PATH=/usr/bin/python
PYTHON_LIB_PATH=/usr/local/lib/python2.7/dist-packages
TF_NEED_CUDA=0
TF_NEED_OPENCL=0
/usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections -fdata-sections '-march=native' '-march=native' '-std=c++0x' '-march=native' '-march=native' -MD -MF bazel-out/local-opt/bin/tensorflow/core/kernels/objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.d '-frandom-seed=bazel-out/local-opt/bin/tensorflow/core/kernels/objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.o' -fPIC -DEIGEN_MPL2_ONLY -DTENSORFLOW_USE_JEMALLOC -DSNAPPY -iquote . -iquote bazel-out/local-opt/genfiles -iquote external/jemalloc -iquote bazel-out/local-opt/genfiles/external/jemalloc -iquote external/bazel_tools -iquote bazel-out/local-opt/genfiles/external/bazel_tools -iquote external/protobuf -iquote bazel-out/local-opt/genfiles/external/protobuf -iquote external/eigen_archive -iquote bazel-out/local-opt/genfiles/external/eigen_archive -iquote external/local_config_sycl -iquote bazel-out/local-opt/genfiles/external/local_config_sycl -iquote external/gif_archive -iquote bazel-out/local-opt/genfiles/external/gif_archive -iquote external/jpeg -iquote bazel-out/local-opt/genfiles/external/jpeg -iquote external/com_googlesource_code_re2 -iquote bazel-out/local-opt/genfiles/external/com_googlesource_code_re2 -iquote external/farmhash_archive -iquote bazel-out/local-opt/genfiles/external/farmhash_archive -iquote external/fft2d -iquote bazel-out/local-opt/genfiles/external/fft2d -iquote external/highwayhash -iquote bazel-out/local-opt/genfiles/external/highwayhash -iquote external/png_archive -iquote bazel-out/local-opt/genfiles/external/png_archive -iquote external/zlib_archive -iquote bazel-out/local-opt/genfiles/external/zlib_archive -iquote external/snappy -iquote bazel-out/local-opt/genfiles/external/snappy -isystem external/jemalloc/include -isystem bazel-out/local-opt/genfiles/external/jemalloc/include -isystem external/bazel_tools/tools/cpp/gcc3 -isystem external/protobuf/src -isystem bazel-out/local-opt/genfiles/external/protobuf/src -isystem external/eigen_archive -isystem bazel-out/local-opt/genfiles/external/eigen_archive -isystem external/gif_archive/lib -isystem bazel-out/local-opt/genfiles/external/gif_archive/lib -isystem external/farmhash_archive/src -isystem bazel-out/local-opt/genfiles/external/farmhash_archive/src -isystem external/png_archive -isystem bazel-out/local-opt/genfiles/external/png_archive -isystem external/zlib_archive -isystem bazel-out/local-opt/genfiles/external/zlib_archive -DEIGEN_AVOID_STL_ARRAY -Iexternal/gemmlowp -Wno-sign-compare -fno-exceptions -msse3 -pthread -fno-canonical-system-headers -Wno-builtin-macro-redefined '-D__DATE="redacted"' '-D__TIMESTAMP
_="redacted"' '-D__TIME__="redacted"' -c tensorflow/core/kernels/self_adjoint_eig_v2_op.cc -o bazel-out/local-opt/bin/tensorflow/core/kernels/_objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.o): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

... snip snip ...

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1: required from here
external/eigen_archive/Eigen/src/Core/util/BlasUtil.h:63:74: error: no type named 'ReturnType' in 'struct Eigen::ScalarBinaryOpTraits<__vector(8) double, std::complex, Eigen::internal::scalar_product_op<__vector(8) double, std::complex > >'
typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar;

^
In file included from external/eigen_archive/Eigen/Jacobi:27:0,
from external/eigen_archive/Eigen/Eigenvalues:16,
from ./third_party/eigen3/Eigen/Eigenvalues:1,
from tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:19:
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h: In instantiation of 'void Eigen::internal::apply_rotation_in_the_plane(Eigen::DenseBase&, Eigen::DenseBase&, const Eigen::JacobiRotation&) [with VectorX = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; VectorY = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; OtherScalar = double]':
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:297:40: required from 'void Eigen::MatrixBase::applyOnTheRight(Eigen::Index, Eigen::Index, const Eigen::JacobiRotation&) [with OtherScalar = double; Derived = Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >; Eigen::Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:861:7: required from 'void Eigen::internal::tridiagonal_qr_step(RealScalar*, RealScalar*, Index, Index, Scalar*, Index) [with int StorageOrder = 0; RealScalar = double; Scalar = std::complex; Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:520:87: required from 'Eigen::ComputationInfo Eigen::internal::computeFromTridiagonal_impl(DiagType&, SubDiagType&, Eigen::Index, bool, MatrixType&) [with MatrixType = Eigen::Matrix<std::complex, -1, -1>; DiagType = Eigen::Matrix<double, -1, 1>; SubDiagType = Eigen::Matrix<double, -1, 1>; Eigen::Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:439:49: required from 'Eigen::SelfAdjointEigenSolver& Eigen::SelfAdjointEigenSolver<_MatrixType>::compute(const Eigen::EigenBase&, int) [with InputType = Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >; _MatrixType = Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:168:14: required from 'Eigen::SelfAdjointEigenSolver<_MatrixType>::SelfAdjointEigenSolver(const Eigen::EigenBase&, int) [with InputType = Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >; _MatrixType = Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73: required from 'void tensorflow::SelfAdjointEigV2Op::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op::MatrixMaps*) [with Scalar = std::complex; tensorflow::SelfAdjointEigV2Op::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op::MatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1: required from here
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:24: error: 'struct Eigen::internal::conj_helper<__vector(8) double, std::complex, false, false>' has no member named 'pmul'
pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:24: error: 'struct Eigen::internal::conj_helper<__vector(8) double, std::complex, false, false>' has no member named 'pmul'

in bold from a non-cuda build (compete build log is attached -
tf_build_nocuda.txt):

ERROR: /home/rajka/tensorflow/tensorflow/core/kernels/BUILD:2093:1: C++ compilation of rule '//tensorflow/core/kernels:self_adjoint_eig_v2_op' failed: gcc failed: error executing command
(cd /home/rajka/.cache/bazel/bazel_rajka/28f0a9835f793d5627ca9486394f31f2/execroot/tensorflow &&
exec env -
PYTHON_BIN_PATH=/usr/bin/python
PYTHON_LIB_PATH=/usr/local/lib/python2.7/dist-packages
TF_NEED_CUDA=0
TF_NEED_OPENCL=0
/usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections -fdata-sections '-march=native' '-march=native' '-std=c++0x' '-march=native' '-march=native' -MD -MF bazel-out/local-opt/bin/tensorflow/core/kernels/objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.d '-frandom-seed=bazel-out/local-opt/bin/tensorflow/core/kernels/objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.o' -fPIC -DEIGEN_MPL2_ONLY -DTENSORFLOW_USE_JEMALLOC -DSNAPPY -iquote . -iquote bazel-out/local-opt/genfiles -iquote external/jemalloc -iquote bazel-out/local-opt/genfiles/external/jemalloc -iquote external/bazel_tools -iquote bazel-out/local-opt/genfiles/external/bazel_tools -iquote external/protobuf -iquote bazel-out/local-opt/genfiles/external/protobuf -iquote external/eigen_archive -iquote bazel-out/local-opt/genfiles/external/eigen_archive -iquote external/local_config_sycl -iquote bazel-out/local-opt/genfiles/external/local_config_sycl -iquote external/gif_archive -iquote bazel-out/local-opt/genfiles/external/gif_archive -iquote external/jpeg -iquote bazel-out/local-opt/genfiles/external/jpeg -iquote external/com_googlesource_code_re2 -iquote bazel-out/local-opt/genfiles/external/com_googlesource_code_re2 -iquote external/farmhash_archive -iquote bazel-out/local-opt/genfiles/external/farmhash_archive -iquote external/fft2d -iquote bazel-out/local-opt/genfiles/external/fft2d -iquote external/highwayhash -iquote bazel-out/local-opt/genfiles/external/highwayhash -iquote external/png_archive -iquote bazel-out/local-opt/genfiles/external/png_archive -iquote external/zlib_archive -iquote bazel-out/local-opt/genfiles/external/zlib_archive -iquote external/snappy -iquote bazel-out/local-opt/genfiles/external/snappy -isystem external/jemalloc/include -isystem bazel-out/local-opt/genfiles/external/jemalloc/include -isystem external/bazel_tools/tools/cpp/gcc3 -isystem external/protobuf/src -isystem bazel-out/local-opt/genfiles/external/protobuf/src -isystem external/eigen_archive -isystem bazel-out/local-opt/genfiles/external/eigen_archive -isystem external/gif_archive/lib -isystem bazel-out/local-opt/genfiles/external/gif_archive/lib -isystem external/farmhash_archive/src -isystem bazel-out/local-opt/genfiles/external/farmhash_archive/src -isystem external/png_archive -isystem bazel-out/local-opt/genfiles/external/png_archive -isystem external/zlib_archive -isystem bazel-out/local-opt/genfiles/external/zlib_archive -DEIGEN_AVOID_STL_ARRAY -Iexternal/gemmlowp -Wno-sign-compare -fno-exceptions -msse3 -pthread -fno-canonical-system-headers -Wno-builtin-macro-redefined '-D__DATE="redacted"' '-D__TIMESTAMP
_="redacted"' '-D__TIME__="redacted"' -c tensorflow/core/kernels/self_adjoint_eig_v2_op.cc -o bazel-out/local-opt/bin/tensorflow/core/kernels/_objs/self_adjoint_eig_v2_op/tensorflow/core/kernels/self_adjoint_eig_v2_op.pic.o): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

... snip snip ...

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1: required from here
external/eigen_archive/Eigen/src/Core/util/BlasUtil.h:63:74: error: no type named 'ReturnType' in 'struct Eigen::ScalarBinaryOpTraits<__vector(8) double, std::complex, Eigen::internal::scalar_product_op<__vector(8) double, std::complex > >'
typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar;

^
In file included from external/eigen_archive/Eigen/Jacobi:27:0,
from external/eigen_archive/Eigen/Eigenvalues:16,
from ./third_party/eigen3/Eigen/Eigenvalues:1,
from tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:19:
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h: In instantiation of 'void Eigen::internal::apply_rotation_in_the_plane(Eigen::DenseBase&, Eigen::DenseBase&, const Eigen::JacobiRotation&) [with VectorX = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; VectorY = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; OtherScalar = double]':
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:297:40: required from 'void Eigen::MatrixBase::applyOnTheRight(Eigen::Index, Eigen::Index, const Eigen::JacobiRotation&) [with OtherScalar = double; Derived = Eigen::Map<Eigen::Matrix<std::complex, -1, -1>, 0, Eigen::Stride<0, 0> >; Eigen::Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:861:7: required from 'void Eigen::internal::tridiagonal_qr_step(RealScalar*, RealScalar*, Index, Index, Scalar*, Index) [with int StorageOrder = 0; RealScalar = double; Scalar = std::complex; Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:520:87: required from 'Eigen::ComputationInfo Eigen::internal::computeFromTridiagonal_impl(DiagType&, SubDiagType&, Eigen::Index, bool, MatrixType&) [with MatrixType = Eigen::Matrix<std::complex, -1, -1>; DiagType = Eigen::Matrix<double, -1, 1>; SubDiagType = Eigen::Matrix<double, -1, 1>; Eigen::Index = long int]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:439:49: required from 'Eigen::SelfAdjointEigenSolver& Eigen::SelfAdjointEigenSolver<_MatrixType>::compute(const Eigen::EigenBase&, int) [with InputType = Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >; _MatrixType = Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>]'
external/eigen_archive/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:168:14: required from 'Eigen::SelfAdjointEigenSolver<_MatrixType>::SelfAdjointEigenSolver(const Eigen::EigenBase&, int) [with InputType = Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >; _MatrixType = Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73: required from 'void tensorflow::SelfAdjointEigV2Op::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op::MatrixMaps*) [with Scalar = std::complex; tensorflow::SelfAdjointEigV2Op::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op::MatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<Eigen::Matrix<std::complex, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1: required from here
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:24: error: 'struct Eigen::internal::conj_helper<__vector(8) double, std::complex, false, false>' has no member named 'pmul'
pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:24: error: 'struct Eigen::internal::conj_helper<__vector(8) double, std::complex, false, false>' has no member named 'pmul'

@drpngx

This comment has been minimized.

Show comment
Hide comment
@drpngx

drpngx May 6, 2017

Member

What gcc version?

/CC: @rmlarsen

Member

drpngx commented May 6, 2017

What gcc version?

/CC: @rmlarsen

@rajivkapoor

This comment has been minimized.

Show comment
Hide comment
@rajivkapoor

rajivkapoor May 6, 2017

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

rajivkapoor commented May 6, 2017

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

@cYclonEK

This comment has been minimized.

Show comment
Hide comment
@cYclonEK

cYclonEK May 8, 2017

Also happens on
GCC 7.1.0
Ubuntu 16.04.2

cYclonEK commented May 8, 2017

Also happens on
GCC 7.1.0
Ubuntu 16.04.2

@inflation

This comment has been minimized.

Show comment
Hide comment
@inflation

inflation Jun 2, 2017

Contributor

Also happens on
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Ubuntu 17.04
And I'm on master

Contributor

inflation commented Jun 2, 2017

Also happens on
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Ubuntu 17.04
And I'm on master

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Jun 5, 2017

Very similar problem on arm (raspberry), r1.2 branch:

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73:   required from 'void tensorflow::SelfAdjointEigV2Op<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps*) [with Scalar = std::complex<fl
oat>; tensorflow::SelfAdjointEigV2Op<Scalar>::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps = tensorflow::gtl::Inl
inedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1:   required from here
external/eigen_archive/Eigen/src/Core/util/BlasUtil.h:63:74: error: no type named 'ReturnType' in 'struct Eigen::ScalarBinaryOpTraits<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, Eigen::internal::scalar_product_op<__vector(4) __builtin_neon_sf, Eigen::inte
rnal::Packet2cf> >'
   typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar;
                                                                          ^
In file included from external/eigen_archive/Eigen/Jacobi:27:0,
                 from external/eigen_archive/Eigen/Eigenvalues:16,
                 from ./third_party/eigen3/Eigen/Eigenvalues:1,
                 from tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:19:
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h: In instantiation of 'void Eigen::internal::apply_rotation_in_the_plane(Eigen::DenseBase<Derived>&, Eigen::DenseBase<Derived>&, const Eigen::JacobiRotation<OtherScalar>&) [with VectorX = Eigen::Block<Eigen::Map<Eigen::Mat
rix<std::complex<float>, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; VectorY = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; OtherScalar = float]':

and

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73:   required from 'void tensorflow::SelfAdjointEigV2Op<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps*) [with Scalar = std::complex<fl
oat>; tensorflow::SelfAdjointEigV2Op<Scalar>::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps = tensorflow::gtl::Inl
inedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1:   required from here
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                       ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                       ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                        ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(px+PacketSize, padd(pm.pmul(pc,xi1),pcj.pmul(ps,yi1)));
                                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                        ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pm.pmul(ps,xi1)));
                                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(x+peelingEnd, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                                  ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                                  ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
       pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:416:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
       pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:416:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.9.2 (Raspbian 4.9.2-10)

fnoop commented Jun 5, 2017

Very similar problem on arm (raspberry), r1.2 branch:

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73:   required from 'void tensorflow::SelfAdjointEigV2Op<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps*) [with Scalar = std::complex<fl
oat>; tensorflow::SelfAdjointEigV2Op<Scalar>::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps = tensorflow::gtl::Inl
inedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1:   required from here
external/eigen_archive/Eigen/src/Core/util/BlasUtil.h:63:74: error: no type named 'ReturnType' in 'struct Eigen::ScalarBinaryOpTraits<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, Eigen::internal::scalar_product_op<__vector(4) __builtin_neon_sf, Eigen::inte
rnal::Packet2cf> >'
   typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar;
                                                                          ^
In file included from external/eigen_archive/Eigen/Jacobi:27:0,
                 from external/eigen_archive/Eigen/Eigenvalues:16,
                 from ./third_party/eigen3/Eigen/Eigenvalues:1,
                 from tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:19:
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h: In instantiation of 'void Eigen::internal::apply_rotation_in_the_plane(Eigen::DenseBase<Derived>&, Eigen::DenseBase<Derived>&, const Eigen::JacobiRotation<OtherScalar>&) [with VectorX = Eigen::Block<Eigen::Map<Eigen::Mat
rix<std::complex<float>, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; VectorY = Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1>, 0, Eigen::Stride<0, 0> >, -1, 1, true>; OtherScalar = float]':

and

tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:66:73:   required from 'void tensorflow::SelfAdjointEigV2Op<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps*) [with Scalar = std::complex<fl
oat>; tensorflow::SelfAdjointEigV2Op<Scalar>::ConstMatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<const Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>; tensorflow::SelfAdjointEigV2Op<Scalar>::MatrixMaps = tensorflow::gtl::Inl
inedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]'
tensorflow/core/kernels/self_adjoint_eig_v2_op.cc:95:1:   required from here
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                       ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                       ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                        ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(px+PacketSize, padd(pm.pmul(pc,xi1),pcj.pmul(ps,yi1)));
                                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                        ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pm.pmul(ps,xi1)));
                                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstoreu(x+peelingEnd, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                                  ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
         pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                                  ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
       pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:416:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
       pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
                                                     ^
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:416:53: error: 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>' has no member named 'pmul'
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.9.2 (Raspbian 4.9.2-10)
@SteveBetter

This comment has been minimized.

Show comment
Hide comment
@SteveBetter

SteveBetter Jun 13, 2017

I have the same problem on Raspberry pi 3 with TensorFlow 1.2.0-rc2, both gcc 4.8 and gcc 4.9.

SteveBetter commented Jun 13, 2017

I have the same problem on Raspberry pi 3 with TensorFlow 1.2.0-rc2, both gcc 4.8 and gcc 4.9.

@luckyteddy

This comment has been minimized.

Show comment
Hide comment
@luckyteddy

luckyteddy Jun 15, 2017

I met the same problem, turns out the eigen lib version is not compatible with tensorflow version. Make sure the eigen version in /tensorflow/workspace.bzl is correct.

luckyteddy commented Jun 15, 2017

I met the same problem, turns out the eigen lib version is not compatible with tensorflow version. Make sure the eigen version in /tensorflow/workspace.bzl is correct.

@SteveBetter

This comment has been minimized.

Show comment
Hide comment
@SteveBetter

SteveBetter Jun 15, 2017

@luckyteddy Do you know the commit of Eigen fits for TensorFlow 1.2.0 rc2 (commit:ce1d6ec49bb0aea2ee2e5bd90e424345e6846fc8 ).

I found something here:
http://eigen.tuxfamily.org/bz_attachmentbase/attachment.cgi?id=789
, which links this error to a commit of Eigen, as you have mentioned.
How to solve this, a earlier version before this commit?

Thanks a lot.

SteveBetter commented Jun 15, 2017

@luckyteddy Do you know the commit of Eigen fits for TensorFlow 1.2.0 rc2 (commit:ce1d6ec49bb0aea2ee2e5bd90e424345e6846fc8 ).

I found something here:
http://eigen.tuxfamily.org/bz_attachmentbase/attachment.cgi?id=789
, which links this error to a commit of Eigen, as you have mentioned.
How to solve this, a earlier version before this commit?

Thanks a lot.

@ggael

This comment has been minimized.

Show comment
Hide comment
@ggael

ggael Jun 15, 2017

Indeed, some specialisations were missing for ARM NEON, this should be fixed by the following commit:

https://bitbucket.org/eigen/eigen/commits/d781c1de9834/
Summary: Bug 1436: fix compilation of Jacobi rotations with ARM NEON, some specializations of internal::conj_helper were missing.

but I cannot test on ARM NEON right now. Could someone try with the head of the default branch of Eigen to confirm it? If everything is green, I'll backport the fix to 3.3.

thanks.

ggael commented Jun 15, 2017

Indeed, some specialisations were missing for ARM NEON, this should be fixed by the following commit:

https://bitbucket.org/eigen/eigen/commits/d781c1de9834/
Summary: Bug 1436: fix compilation of Jacobi rotations with ARM NEON, some specializations of internal::conj_helper were missing.

but I cannot test on ARM NEON right now. Could someone try with the head of the default branch of Eigen to confirm it? If everything is green, I'll backport the fix to 3.3.

thanks.

@luckyteddy

This comment has been minimized.

Show comment
Hide comment
@luckyteddy

luckyteddy Jun 15, 2017

@ggael It works on my ARM platform

luckyteddy commented Jun 15, 2017

@ggael It works on my ARM platform

@luckyteddy

This comment has been minimized.

Show comment
Hide comment
@luckyteddy

luckyteddy Jun 15, 2017

@SteveBetter Sorry, I have overload eigen to test, don't know the earlier version. But the solution @ggael gave works. Thanks to him.

luckyteddy commented Jun 15, 2017

@SteveBetter Sorry, I have overload eigen to test, don't know the earlier version. But the solution @ggael gave works. Thanks to him.

@ggael

This comment has been minimized.

Show comment
Hide comment
@ggael

ggael Jun 16, 2017

@luckyteddy thank you for the confirmation.

ggael commented Jun 16, 2017

@luckyteddy thank you for the confirmation.

@rmlarsen rmlarsen removed their assignment Jun 16, 2017

@SteveBetter

This comment has been minimized.

Show comment
Hide comment
@SteveBetter

SteveBetter Jun 17, 2017

It works for my Raspberry pi 3 model B also.
Thanks @ggael

SteveBetter commented Jun 17, 2017

It works for my Raspberry pi 3 model B also.
Thanks @ggael

@lime45

This comment has been minimized.

Show comment
Hide comment
@lime45

lime45 Jun 21, 2017

I was able to get tensorflow 1.2.0 rc2 to build with this eigen commit: d781c1de9834 . That was with gcc-arm-gnueabi-5.4.

lime45 commented Jun 21, 2017

I was able to get tensorflow 1.2.0 rc2 to build with this eigen commit: d781c1de9834 . That was with gcc-arm-gnueabi-5.4.

@mwytock

This comment has been minimized.

Show comment
Hide comment
@mwytock

mwytock Jun 23, 2017

Contributor

This doesnt seem to address the original problem of building with -march=native on skylake - I still get build errors even with new eigen (also, the eigen dep in workspace.bzl should likely be rolled forward)

Seems related to #9849 and #10689 which also report AVX 512 related errors

Contributor

mwytock commented Jun 23, 2017

This doesnt seem to address the original problem of building with -march=native on skylake - I still get build errors even with new eigen (also, the eigen dep in workspace.bzl should likely be rolled forward)

Seems related to #9849 and #10689 which also report AVX 512 related errors

@mwytock

This comment has been minimized.

Show comment
Hide comment
@mwytock

mwytock Jun 23, 2017

Contributor

Update - building r1.1 release branch with -march=native on skylake (Ubuntu 16.04) works, so this looks like a regression introduced in r1.2, likely due to depending on a different eigen commit (r1.1 is on 9c6361787292 currently)

...although it looks like it actually segfaults when you try to run anything

Contributor

mwytock commented Jun 23, 2017

Update - building r1.1 release branch with -march=native on skylake (Ubuntu 16.04) works, so this looks like a regression introduced in r1.2, likely due to depending on a different eigen commit (r1.1 is on 9c6361787292 currently)

...although it looks like it actually segfaults when you try to run anything

@martinwicke martinwicke reopened this Jun 26, 2017

@martinwicke

This comment has been minimized.

Show comment
Hide comment
@martinwicke

martinwicke Jun 26, 2017

Member

@benoitsteiner Is it possible that Eigen (at 9c6361787292) does not compile on skylake?

@mwytock, could you change to a newer Eigen commit and check with that?

Member

martinwicke commented Jun 26, 2017

@benoitsteiner Is it possible that Eigen (at 9c6361787292) does not compile on skylake?

@mwytock, could you change to a newer Eigen commit and check with that?

@mwytock

This comment has been minimized.

Show comment
Hide comment
@mwytock

mwytock Jun 27, 2017

Contributor

@martinwicke I tried eigen commit 5a0156e40feb which corresponds to version 3.3.4 released 6/15

Its unclear to me if this fixes the original issue but it seems to cause new eigen-related compilation issues

ERROR: /home/mwytock/tensorflow/tensorflow/core/BUILD:1207:1: C++ compilation of rule '//tensorflow/core:lib_internal' failed: gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG ... (remaining 117 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
tensorflow/core/lib/core/threadpool.cc: In constructor 'tensorflow::thread::ThreadPool::Impl::Impl(tensorflow::Env*, const tensorflow::ThreadOptions&, const string&, int, bool)':
tensorflow/core/lib/core/threadpool.cc:91:56: error: no matching function for call to 'Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::NonBlockingThreadPoolTempl(int&, bool&, tensorflow::thread::EigenEnvironment)'
             EigenEnvironment(env, thread_options, name)) {}
                                                        ^
In file included from external/eigen_archive/unsupported/Eigen/CXX11/ThreadPool:58:0,
                 from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:72,
                 from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
                 from tensorflow/core/lib/core/threadpool.cc:19:
external/eigen_archive/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:22:3: note: candidate: Eigen::NonBlockingThreadPoolTempl<Environment>::NonBlockingThreadPoolTempl(int, Environment) [with Environment = tensorflow::thread::EigenEnvironment]
   NonBlockingThreadPoolTempl(int num_threads, Environment env = Environment())
   ^
external/eigen_archive/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:22:3: note:   candidate expects 2 arguments, 3 provided
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.

I suspect someone with more knowledge of eigen/tensorflow internals will need to take a look.

Also, for what its worth, I'm compiling this on vanilla Ubuntu 16.04 running on a skylake machine in GCE us-west1 so should be easy to replicate.

Contributor

mwytock commented Jun 27, 2017

@martinwicke I tried eigen commit 5a0156e40feb which corresponds to version 3.3.4 released 6/15

Its unclear to me if this fixes the original issue but it seems to cause new eigen-related compilation issues

ERROR: /home/mwytock/tensorflow/tensorflow/core/BUILD:1207:1: C++ compilation of rule '//tensorflow/core:lib_internal' failed: gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG ... (remaining 117 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
tensorflow/core/lib/core/threadpool.cc: In constructor 'tensorflow::thread::ThreadPool::Impl::Impl(tensorflow::Env*, const tensorflow::ThreadOptions&, const string&, int, bool)':
tensorflow/core/lib/core/threadpool.cc:91:56: error: no matching function for call to 'Eigen::NonBlockingThreadPoolTempl<tensorflow::thread::EigenEnvironment>::NonBlockingThreadPoolTempl(int&, bool&, tensorflow::thread::EigenEnvironment)'
             EigenEnvironment(env, thread_options, name)) {}
                                                        ^
In file included from external/eigen_archive/unsupported/Eigen/CXX11/ThreadPool:58:0,
                 from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:72,
                 from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
                 from tensorflow/core/lib/core/threadpool.cc:19:
external/eigen_archive/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:22:3: note: candidate: Eigen::NonBlockingThreadPoolTempl<Environment>::NonBlockingThreadPoolTempl(int, Environment) [with Environment = tensorflow::thread::EigenEnvironment]
   NonBlockingThreadPoolTempl(int num_threads, Environment env = Environment())
   ^
external/eigen_archive/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:22:3: note:   candidate expects 2 arguments, 3 provided
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.

I suspect someone with more knowledge of eigen/tensorflow internals will need to take a look.

Also, for what its worth, I'm compiling this on vanilla Ubuntu 16.04 running on a skylake machine in GCE us-west1 so should be easy to replicate.

@lissyx

This comment has been minimized.

Show comment
Hide comment
@lissyx

lissyx Jun 30, 2017

Contributor

I could reproduce that cross-compiling for ARMv6 on Debian Sid, both with the GCC 4.9.3 toolchain provided for RPi and with GCC6 ARM cross-compiler. Switching eigen_archive to https://bitbucket.org/eigen/eigen/commits/d781c1de9834/ did help, as suggested by @lime45. At least, it builds a shared object.

This was on master, 2e68836

Contributor

lissyx commented Jun 30, 2017

I could reproduce that cross-compiling for ARMv6 on Debian Sid, both with the GCC 4.9.3 toolchain provided for RPi and with GCC6 ARM cross-compiler. Switching eigen_archive to https://bitbucket.org/eigen/eigen/commits/d781c1de9834/ did help, as suggested by @lime45. At least, it builds a shared object.

This was on master, 2e68836

@nylocx

This comment has been minimized.

Show comment
Hide comment
@nylocx

nylocx Sep 13, 2017

I also managed to build with Eigen master and tensorflow master but with native optimizations, a skylake CPU on Ubuntu I ran into this issue: #9638

nylocx commented Sep 13, 2017

I also managed to build with Eigen master and tensorflow master but with native optimizations, a skylake CPU on Ubuntu I ran into this issue: #9638

@adityapatadia

This comment has been minimized.

Show comment
Hide comment
@adityapatadia

adityapatadia Sep 13, 2017

@nylocx same issue with me. Ended up using pre-built version from pip. Any help will be appreciated as I want to take advantage of SIMD instructions.

adityapatadia commented Sep 13, 2017

@nylocx same issue with me. Ended up using pre-built version from pip. Any help will be appreciated as I want to take advantage of SIMD instructions.

@skjensen

This comment has been minimized.

Show comment
Hide comment
@skjensen

skjensen Sep 14, 2017

I ran into the same issue compiling TensorFlow from source in a FireFly RK3399 aarch64 bit device.
To solve the problem edit tensorflow/workspace.bzl add the bleeding edge version of Eigen, I tried with release 3.3.4 but ran into a different problem expected number of variables given to a function didn't match. This appear to be fixed in the most current release.

Hope this helps:

native.new_http_archive(
name = "eigen_archive",
urls = [
#"http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
#"https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
"http://bitbucket.org/eigen/eigen/get/default.tar.gz",
],
#sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
sha256 = "03a9a0e81da9085fd8af8406d9846521d1eb84a4c0e1fdac5dbe99e5cbdb8abd",
#strip_prefix = "eigen-eigen-f3a22f35b044",
strip_prefix = "eigen-eigen-940f20dd4eb3",
build_file = str(Label("//third_party:eigen.BUILD")),
)

skjensen commented Sep 14, 2017

I ran into the same issue compiling TensorFlow from source in a FireFly RK3399 aarch64 bit device.
To solve the problem edit tensorflow/workspace.bzl add the bleeding edge version of Eigen, I tried with release 3.3.4 but ran into a different problem expected number of variables given to a function didn't match. This appear to be fixed in the most current release.

Hope this helps:

native.new_http_archive(
name = "eigen_archive",
urls = [
#"http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
#"https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
"http://bitbucket.org/eigen/eigen/get/default.tar.gz",
],
#sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
sha256 = "03a9a0e81da9085fd8af8406d9846521d1eb84a4c0e1fdac5dbe99e5cbdb8abd",
#strip_prefix = "eigen-eigen-f3a22f35b044",
strip_prefix = "eigen-eigen-940f20dd4eb3",
build_file = str(Label("//third_party:eigen.BUILD")),
)

@davidmascharka

This comment has been minimized.

Show comment
Hide comment
@davidmascharka

davidmascharka Sep 14, 2017

@skjensen I'm running into a certificate issue trying to use that eigen URL. Did you encounter this? I get:

ERROR: /home/tensorflow/tensorflow/tools/pip_package/BUILD:100:1: no such package 
'@eigen_archive//': Error downloading [https://bitbucket.org/eigen/eigen/get/default.tar.gz]
to /home/.cache/bazel/_bazel_david/9a6a3e878a69de23dea27378a84b120f/external/eigen_archive/default.tar.gz:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target and referenced by
'//tensorflow/tools/pip_package:licenses'.
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted.
INFO: Elapsed time: 15.916s

davidmascharka commented Sep 14, 2017

@skjensen I'm running into a certificate issue trying to use that eigen URL. Did you encounter this? I get:

ERROR: /home/tensorflow/tensorflow/tools/pip_package/BUILD:100:1: no such package 
'@eigen_archive//': Error downloading [https://bitbucket.org/eigen/eigen/get/default.tar.gz]
to /home/.cache/bazel/_bazel_david/9a6a3e878a69de23dea27378a84b120f/external/eigen_archive/default.tar.gz:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target and referenced by
'//tensorflow/tools/pip_package:licenses'.
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted.
INFO: Elapsed time: 15.916s
@nylocx

This comment has been minimized.

Show comment
Hide comment
@nylocx

nylocx Sep 14, 2017

I had strange problems with the default.tar.gz too, so I used the real commit ID of master head. Which in my opinion is better because the hash will not change wir every new commit made to the Eigen master branch.

nylocx commented Sep 14, 2017

I had strange problems with the default.tar.gz too, so I used the real commit ID of master head. Which in my opinion is better because the hash will not change wir every new commit made to the Eigen master branch.

@davidmascharka

This comment has been minimized.

Show comment
Hide comment
@davidmascharka

davidmascharka Sep 14, 2017

@nylocx is that with 940f20dd4eb3? I'm getting the same certificate error on my end with that. I'll search around and see if it's a Java problem.

davidmascharka commented Sep 14, 2017

@nylocx is that with 940f20dd4eb3? I'm getting the same certificate error on my end with that. I'll search around and see if it's a Java problem.

@skjensen

This comment has been minimized.

Show comment
Hide comment
@skjensen

skjensen Sep 14, 2017

I didn't experience any issues with the certificate, just check the name of the file and the sha256sum of the file you download is matching the snip of the config I showed above.

Do a bazel clean before you try build it again.

skjensen commented Sep 14, 2017

I didn't experience any issues with the certificate, just check the name of the file and the sha256sum of the file you download is matching the snip of the config I showed above.

Do a bazel clean before you try build it again.

@adityapatadia

This comment has been minimized.

Show comment
Hide comment
@adityapatadia

adityapatadia commented Sep 22, 2017

@nylocx any luck with the #9638?

@adityapatadia

This comment has been minimized.

Show comment
Hide comment
@adityapatadia

adityapatadia Sep 22, 2017

@ggael please check #9638. Please also let us know when can we expect new release tagged for eigen?

adityapatadia commented Sep 22, 2017

@ggael please check #9638. Please also let us know when can we expect new release tagged for eigen?

@nylocx

This comment has been minimized.

Show comment
Hide comment
@nylocx

nylocx Sep 22, 2017

Hi, yes I had partiall success.
I had to deactivate AVX512F optimization to get rid of the errors and used the eigen Version I posted at #9638

nylocx commented Sep 22, 2017

Hi, yes I had partiall success.
I had to deactivate AVX512F optimization to get rid of the errors and used the eigen Version I posted at #9638

@adityapatadia

This comment has been minimized.

Show comment
Hide comment
@adityapatadia

adityapatadia Sep 22, 2017

What is the flag to disable AVX512X?

adityapatadia commented Sep 22, 2017

What is the flag to disable AVX512X?

@nylocx

This comment has been minimized.

Show comment
Hide comment
@nylocx

nylocx Sep 22, 2017

In the configure step I used march=broadwell for optimization instead of march=native or skylake.

nylocx commented Sep 22, 2017

In the configure step I used march=broadwell for optimization instead of march=native or skylake.

@adityapatadia

This comment has been minimized.

Show comment
Hide comment
@adityapatadia

adityapatadia Sep 28, 2017

This is error it gives when I tried it.
gcc: error: broadwell: No such file or directory

adityapatadia commented Sep 28, 2017

This is error it gives when I tried it.
gcc: error: broadwell: No such file or directory

@nylocx

This comment has been minimized.

Show comment
Hide comment
@nylocx

nylocx Sep 28, 2017

You used this line in the configure step?

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: -march=broadwell

nylocx commented Sep 28, 2017

You used this line in the configure step?

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: -march=broadwell

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Oct 31, 2017

So, what is the current state of play? How do we compile with eigen?

fnoop commented Oct 31, 2017

So, what is the current state of play? How do we compile with eigen?

@pisymbol

This comment has been minimized.

Show comment
Hide comment
@pisymbol

pisymbol Oct 31, 2017

I can confirm on the Raspberry Pi 3B, you need to use the Eigen development branch tarball (http://bitbucket.org/eigen/eigen/get/default.tar.gz) and change the workspace.bzl file accordingly to get TF to build successfully.

As of today, this is what worked for me:

diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index bb140946d..c7b66a3bc 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -169,11 +169,10 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
   native.new_http_archive(
       name = "eigen_archive",
       urls = [
-          "http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
-          "https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
+          "http://bitbucket.org/eigen/eigen/get/default.tar.gz",
       ],
-      sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
-      strip_prefix = "eigen-eigen-f3a22f35b044",
+      sha256 = "d1fb5da2ef28ee3a30a3e33c2a3392a7cc3e2337e2fe86ec7b57664f23c33aab",
+      strip_prefix = "eigen-eigen-dc83e26d8a3c",
       build_file = str(Label("//third_party:eigen.BUILD")),
   )

Obviously, you need to check the sha256 of your tarball ('sha256sum default.tar.gz' etc.) and verify its strip_prefix ('tar -tvf default.tar.gz') before making the above changes since the Eigen development branch release can change at anytime. I also recommend watching either the Lord of the Rings Extended Editions or perhaps Stranger Things (pick a season) all the way through once you start the build. It'll be a while before a wheel pops out.

pisymbol commented Oct 31, 2017

I can confirm on the Raspberry Pi 3B, you need to use the Eigen development branch tarball (http://bitbucket.org/eigen/eigen/get/default.tar.gz) and change the workspace.bzl file accordingly to get TF to build successfully.

As of today, this is what worked for me:

diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index bb140946d..c7b66a3bc 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -169,11 +169,10 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
   native.new_http_archive(
       name = "eigen_archive",
       urls = [
-          "http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
-          "https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
+          "http://bitbucket.org/eigen/eigen/get/default.tar.gz",
       ],
-      sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
-      strip_prefix = "eigen-eigen-f3a22f35b044",
+      sha256 = "d1fb5da2ef28ee3a30a3e33c2a3392a7cc3e2337e2fe86ec7b57664f23c33aab",
+      strip_prefix = "eigen-eigen-dc83e26d8a3c",
       build_file = str(Label("//third_party:eigen.BUILD")),
   )

Obviously, you need to check the sha256 of your tarball ('sha256sum default.tar.gz' etc.) and verify its strip_prefix ('tar -tvf default.tar.gz') before making the above changes since the Eigen development branch release can change at anytime. I also recommend watching either the Lord of the Rings Extended Editions or perhaps Stranger Things (pick a season) all the way through once you start the build. It'll be a while before a wheel pops out.

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Oct 31, 2017

@pisymbol Thanks that's very helpful as I'm trying to build it on the rpi3. Which version of tf are you using? I'm using the r1.2 branch.
Yes I've just finished building bazel which took probably, oh about 18 hours or so. And I forgot to update my manifests so installed 0.50, which I'm guessing probably means I have to stick to tf 1.2 (which takes another 24 hours to build..). Painful stuff..

fnoop commented Oct 31, 2017

@pisymbol Thanks that's very helpful as I'm trying to build it on the rpi3. Which version of tf are you using? I'm using the r1.2 branch.
Yes I've just finished building bazel which took probably, oh about 18 hours or so. And I forgot to update my manifests so installed 0.50, which I'm guessing probably means I have to stick to tf 1.2 (which takes another 24 hours to build..). Painful stuff..

@pisymbol

This comment has been minimized.

Show comment
Hide comment
@pisymbol

pisymbol Oct 31, 2017

I just built trunk successfully (a variant of 1.3). I'm on Stretch (Debian 9). See here:

pisymbol@hal:~ $ python3 -c 'import tensorflow as tf; print(tf.__version__)'
1.3.0

I built trunk btw because at some point a RPi #define was added to the build so you have don't have to make a lot of the "arm" specific build changes you read about.

Don't worry, I built an older version of bazel too and then realized that TF can't use it (requires 0.5.4+). Joy. So I had to download and built bazel again! Another upteen hours gone. And then TF failed to build several times after many hours of trial and error (trying to aggregate the many incorrect build instructions currently out on the Ether).

Anyway, if you use the Eigen development branch tarball as per above, TF builds all the way through with no issue for me.

pisymbol commented Oct 31, 2017

I just built trunk successfully (a variant of 1.3). I'm on Stretch (Debian 9). See here:

pisymbol@hal:~ $ python3 -c 'import tensorflow as tf; print(tf.__version__)'
1.3.0

I built trunk btw because at some point a RPi #define was added to the build so you have don't have to make a lot of the "arm" specific build changes you read about.

Don't worry, I built an older version of bazel too and then realized that TF can't use it (requires 0.5.4+). Joy. So I had to download and built bazel again! Another upteen hours gone. And then TF failed to build several times after many hours of trial and error (trying to aggregate the many incorrect build instructions currently out on the Ether).

Anyway, if you use the Eigen development branch tarball as per above, TF builds all the way through with no issue for me.

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Oct 31, 2017

Oh, OK thanks (sobs gently to himself)

fnoop commented Oct 31, 2017

Oh, OK thanks (sobs gently to himself)

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Nov 1, 2017

@pisymbol Does the r1.3 branch contain the rpi #defines?

fnoop commented Nov 1, 2017

@pisymbol Does the r1.3 branch contain the rpi #defines?

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Nov 1, 2017

I can't see any reference to bazel versions in the tensorflow source compile docs. Bazel is up to 0.7.0 now.

fnoop commented Nov 1, 2017

I can't see any reference to bazel versions in the tensorflow source compile docs. Bazel is up to 0.7.0 now.

@martinwicke

This comment has been minimized.

Show comment
Hide comment
@martinwicke

martinwicke Nov 1, 2017

Member

There should be a warning about old versions of Bazel. Did that not trigger for you? Is it simply out of date or is it broken?

Member

martinwicke commented Nov 1, 2017

There should be a warning about old versions of Bazel. Did that not trigger for you? Is it simply out of date or is it broken?

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Nov 1, 2017

@martinwicke the build is automated so I wouldn't have seen it:
https://github.com/fnoop/maverick/blob/stable/manifests/maverick-modules/maverick_intelligence/manifests/tensorflow.pp

If there's a minimum version shouldn't it fail rather than warn? And minimum dependencies should be somewhere in the source build docs?

fnoop commented Nov 1, 2017

@martinwicke the build is automated so I wouldn't have seen it:
https://github.com/fnoop/maverick/blob/stable/manifests/maverick-modules/maverick_intelligence/manifests/tensorflow.pp

If there's a minimum version shouldn't it fail rather than warn? And minimum dependencies should be somewhere in the source build docs?

@pisymbol

This comment has been minimized.

Show comment
Hide comment
@pisymbol

pisymbol Nov 1, 2017

My build did fail with a message I needed 0.5.4 or higher. Again this was on master. I haven't looked if the RPi3 build changes made it to r1.3 (I would suspect not, i.e. I wouldn't backport them to the maintenance branch and I think someone said RPi support would come in 1.4 but don't hold me to it).

pisymbol commented Nov 1, 2017

My build did fail with a message I needed 0.5.4 or higher. Again this was on master. I haven't looked if the RPi3 build changes made it to r1.3 (I would suspect not, i.e. I wouldn't backport them to the maintenance branch and I think someone said RPi support would come in 1.4 but don't hold me to it).

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Nov 1, 2017

@pisymbol Thanks for confirming. Sorry I tried to build r1.2 with bazel 0.5.0 which should be OK, although recent r1.2 doesn't build on the raspberry any longer - it used to. I'm trying to build bazel 0.7.0 now with r1.3, but maybe I'll just head to the current master. Will report back with story of success or dismal failure :)

fnoop commented Nov 1, 2017

@pisymbol Thanks for confirming. Sorry I tried to build r1.2 with bazel 0.5.0 which should be OK, although recent r1.2 doesn't build on the raspberry any longer - it used to. I'm trying to build bazel 0.7.0 now with r1.3, but maybe I'll just head to the current master. Will report back with story of success or dismal failure :)

@fnoop

This comment has been minimized.

Show comment
Hide comment
@fnoop

fnoop Nov 2, 2017

Aha! There are now binary wheels for raspberry quad and single core variants which work well:
https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi/

Sorry for the noise on this issue.

fnoop commented Nov 2, 2017

Aha! There are now binary wheels for raspberry quad and single core variants which work well:
https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi/

Sorry for the noise on this issue.

@tensorflowbutler

This comment has been minimized.

Show comment
Hide comment
@tensorflowbutler

tensorflowbutler Dec 22, 2017

Member

It has been 14 days with no activity and this issue has an assignee.Please update the label and/or status accordingly.

Member

tensorflowbutler commented Dec 22, 2017

It has been 14 days with no activity and this issue has an assignee.Please update the label and/or status accordingly.

@tensorflowbutler

This comment has been minimized.

Show comment
Hide comment
@tensorflowbutler

tensorflowbutler Jan 5, 2018

Member

Nagging Assigneee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Member

tensorflowbutler commented Jan 5, 2018

Nagging Assigneee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

@drpngx

This comment has been minimized.

Show comment
Hide comment
@drpngx

drpngx Jan 5, 2018

Member

Sorry, this is a pretty long thread and our build has changed substantially since May last year. IF you still have that problem, could you please open a new ticket? Thanks.

Member

drpngx commented Jan 5, 2018

Sorry, this is a pretty long thread and our build has changed substantially since May last year. IF you still have that problem, could you please open a new ticket? Thanks.

@drpngx drpngx closed this Jan 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment