2017-06-07 18 views
0

Tensorflow 1.2-rc1をビルドしようとしていますが、-mfpu = neonフラグを使用してコンパイルしようとするとビルドに失敗します。 -mfpu = vfpv3フラグを使用している場合、ビルドは正常に動作します。これはビーグルボーン・ブラック・ベースのボード用です。このタイプのプラットフォームでこれを成功させた人は誰ですか?ARM NEONコンパイルエラー(Tensorflowの場合)

Tensorflowから引くこのコミット:私はビルドエラーを受信して​​いhttps://bitbucket.org/eigen/eigen/commits/f3a22f35b0444e03a1f65941800b9a2283de1398

ERROR: /mnt/tensorflow/tensorflow/core/kernels/BUILD:2128:1: C++ compilation of rule '//tensorflow/core/kernels:svd_op' failed: gcc failed: error executing command 

    (cd /home/snap/.cache/bazel/_bazel_root/ef9923c1cfd90b0d686a7ea3591643c7/execroot/tensorflow && \ 

    exec env - \ 

    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ 

    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=armv7-a' '-mfpu=neon' -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer '-std=c++11' '-std=c++0x' -MD -MF bazel-out/local-opt/bin/tensorflow/core/kernels/_objs/svd_op/tensorflow/core/kernels/svd_op_complex64.pic.d '-frandom-seed=bazel-out/local-opt/bin/tensorflow/core/kernels/_objs/svd_op/tensorflow/core/kernels/svd_op_complex64.pic.o' -fPIC -DEIGEN_MPL2_ONLY -DSNAPPY -iquote . -iquote bazel-out/local-opt/genfiles -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/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 -pthread -fno-canonical-system-headers -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c tensorflow/core/kernels/svd_op_complex64.cc -o bazel-out/local-opt/bin/tensorflow/core/kernels/_objs/svd_op/tensorflow/core/kernels/svd_op_complex64.pic.o): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1. 

In file included from external/eigen_archive/Eigen/Core:451:0, 

       from external/eigen_archive/Eigen/QR:11, 

       from external/eigen_archive/Eigen/SVD:11, 

       from ./third_party/eigen3/Eigen/SVD:1, 

       from ./tensorflow/core/kernels/svd_op_impl.h:23, 

       from tensorflow/core/kernels/svd_op_complex64.cc:16: 

external/eigen_archive/Eigen/src/Core/util/BlasUtil.h: In instantiation of 'struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>': 

external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:339:77: required from 'void Eigen::internal::apply_rotation_in_the_plane(Eigen::DenseBase<Derived>&, Eigen::DenseBase<Derived>&, const Eigen::JacobiRotation<OtherScalar>&) [with VectorX = Eigen::Block<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 1, -1, true>; VectorY = Eigen::Block<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 1, -1, true>; OtherScalar = float]' 

external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:282:48: required from 'void Eigen::MatrixBase<Derived>::applyOnTheLeft(Eigen::Index, Eigen::Index, const Eigen::JacobiRotation<OtherScalar>&) [with OtherScalar = float; Derived = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::Index = int]' 

external/eigen_archive/Eigen/src/SVD/JacobiSVD.h:725:13: required from 'Eigen::JacobiSVD<MatrixType, QRPreconditioner>& Eigen::JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; int QRPreconditioner = 2; Eigen::JacobiSVD<MatrixType, QRPreconditioner>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/JacobiSVD.h:548:41: required from 'Eigen::JacobiSVD<MatrixType, QRPreconditioner>::JacobiSVD(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; int QRPreconditioner = 2; Eigen::JacobiSVD<MatrixType, QRPreconditioner>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/BDCSVD.h:251:57: required from 'Eigen::BDCSVD<_MatrixType>& Eigen::BDCSVD<MatrixType>::compute(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::BDCSVD<MatrixType>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/BDCSVD.h:136:39: required from 'Eigen::BDCSVD<MatrixType>::BDCSVD(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::BDCSVD<MatrixType>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

./tensorflow/core/kernels/svd_op_impl.h:88:49: required from 'void tensorflow::SvdOp<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SvdOp<Scalar>::MatrixMaps*) [with Scalar = std::complex<float>; tensorflow::SvdOp<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::SvdOp<Scalar>::MatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]' 

tensorflow/core/kernels/svd_op_complex64.cc:23: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::internal::Packet2cf> >' 

    typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar; 

                     ^

In file included from external/eigen_archive/Eigen/Jacobi:27:0, 

       from external/eigen_archive/Eigen/QR:16, 

       from external/eigen_archive/Eigen/SVD:11, 

       from ./third_party/eigen3/Eigen/SVD:1, 

       from ./tensorflow/core/kernels/svd_op_impl.h:23, 

       from tensorflow/core/kernels/svd_op_complex64.cc:16: 

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::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 1, -1, true>; VectorY = Eigen::Block<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 1, -1, true>; OtherScalar = float]': 

external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:282:48: required from 'void Eigen::MatrixBase<Derived>::applyOnTheLeft(Eigen::Index, Eigen::Index, const Eigen::JacobiRotation<OtherScalar>&) [with OtherScalar = float; Derived = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::Index = int]' 

external/eigen_archive/Eigen/src/SVD/JacobiSVD.h:725:13: required from 'Eigen::JacobiSVD<MatrixType, QRPreconditioner>& Eigen::JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; int QRPreconditioner = 2; Eigen::JacobiSVD<MatrixType, QRPreconditioner>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/JacobiSVD.h:548:41: required from 'Eigen::JacobiSVD<MatrixType, QRPreconditioner>::JacobiSVD(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; int QRPreconditioner = 2; Eigen::JacobiSVD<MatrixType, QRPreconditioner>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/BDCSVD.h:251:57: required from 'Eigen::BDCSVD<_MatrixType>& Eigen::BDCSVD<MatrixType>::compute(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::BDCSVD<MatrixType>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

external/eigen_archive/Eigen/src/SVD/BDCSVD.h:136:39: required from 'Eigen::BDCSVD<MatrixType>::BDCSVD(const MatrixType&, unsigned int) [with _MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>; Eigen::BDCSVD<MatrixType>::MatrixType = Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>]' 

./tensorflow/core/kernels/svd_op_impl.h:88:49: required from 'void tensorflow::SvdOp<Scalar>::ComputeMatrix(tensorflow::OpKernelContext*, const ConstMatrixMaps&, tensorflow::SvdOp<Scalar>::MatrixMaps*) [with Scalar = std::complex<float>; tensorflow::SvdOp<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::SvdOp<Scalar>::MatrixMaps = tensorflow::gtl::InlinedVector<Eigen::Map<Eigen::Matrix<std::complex<float>, -1, -1, 1, -1, -1>, 0, Eigen::Stride<0, 0> >, 4>]' 

tensorflow/core/kernels/svd_op_complex64.cc:23: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))); 

                ^

答えて

1

、147行程度で/tensorflow/workspace.bzl で

: 変更:

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", 
     ], 
     sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4", 
     strip_prefix = "eigen-eigen-f3a22f35b044", 
     build_file = str(Label("//third_party:eigen.BUILD")), 
) 

native.new_http_archive(
     name = "eigen_archive", 
     urls = [ 
      "http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/d781c1de9834.tar.gz", 
      "https://bitbucket.org/eigen/eigen/get/d781c1de9834.tar.gz", 
     ], 
     sha256 = "a34b208da6ec18fa8da963369e166e4a368612c14d956dd2f9d7072904675d9b", 
     strip_prefix = "eigen-eigen-d781c1de9834", 
     build_file = str(Label("//third_party:eigen.BUILD")), 
) 
+0

に構築するためには、このtensorflow 1.3 on aarch64次のsedコマンドを使用してworkspace.bzlファイルをパッチします: SED -i 'S/f3a22f35b044/d781c1de9834/G' /tensorflow/tensorflow/workspace.bzl && SED -i 'S/ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4/a34b208da6ec18fa8da963369e166e4a368612c14d956dd2f9d7072904675d9b/G' /tensorflow/tensorflow/workspace.bzl – head7

関連する問題