Skip to content
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

源码编译ARM机器时,make TARGET=ARMV8 -j$(nproc)卡住 #57932

Closed
kane-hu opened this issue Oct 8, 2023 · 1 comment
Closed

源码编译ARM机器时,make TARGET=ARMV8 -j$(nproc)卡住 #57932

kane-hu opened this issue Oct 8, 2023 · 1 comment
Assignees
Labels
status/close 已关闭 type/build 编译/安装问题

Comments

@kane-hu
Copy link

kane-hu commented Oct 8, 2023

问题描述 Issue Description

在鲲鹏920的机器上源码编译Paddle时,执行make TARGET=ARMV8 -j$(nproc)后出现

In file included from /opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:253,
from /opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:14,
from /opt/aPaddle/paddle/phi/kernels/funcs/eigen/extensions.h:23,
from /opt/aPaddle/paddle/phi/kernels/funcs/eigen/common.h:20,
from /opt/aPaddle/paddle/phi/kernels/funcs/common_shape.h:18,
from /opt/aPaddle/paddle/phi/kernels/funcs/elementwise_base.h:21,
from /opt/aPaddle/paddle/phi/kernels/funcs/broadcast_function.h:18,
from /opt/aPaddle/paddle/phi/kernels/cpu/elementwise.h:20,
from /opt/aPaddle/paddle/phi/kernels/legacy/cpu/elementwise_multiply_kernel.cc:20:
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/functors/BinaryFunctors.h: In instantiation of ‘Eigen::internal::scalar_product_op<LhsScalar, RhsScalar>::result_type Eigen::internal::scalar_product_op<LhsScalar, RhsScalar>::operator()(const LhsScalar&, const RhsScalar&) const [with LhsScalar = const bool; RhsScalar = const bool; Eigen::internal::scalar_product_op<LhsScalar, RhsScalar>::result_type = const bool]’:
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h:641:71: required from ‘Eigen::TensorEvaluator<const Eigen::TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArgType>, Device>::CoeffReturnType Eigen::TensorEvaluator<const Eigen::TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArgType>, Device>::coeff(Eigen::TensorEvaluator<const Eigen::TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArgType>, Device>::Index) const [with BinaryOp = Eigen::internal::scalar_product_op<const bool, const bool>; LeftArgType = const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer>; RightArgType = const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer>; Device = Eigen::DefaultDevice; Eigen::TensorEvaluator<const Eigen::TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArgType>, Device>::CoeffReturnType = bool; Eigen::TensorEvaluator<const Eigen::TensorCwiseBinaryOp<BinaryOp, LeftArgType, RightArgType>, Device>::Index = long int]’
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h:172:28: required from ‘void Eigen::TensorEvaluator<const Eigen::TensorAssignOp<LhsXprType, RhsXprType>, Device>::evalScalar(Eigen::TensorEvaluator<const Eigen::TensorAssignOp<LhsXprType, RhsXprType>, Device>::Index) [with LeftArgType = Eigen::TensorMap<Eigen::Tensor<bool, 1, 1, long int>, 0, Eigen::MakePointer>; RightArgType = const Eigen::TensorCwiseBinaryOp<Eigen::internal::scalar_product_op<const bool, const bool>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer> >; Device = Eigen::DefaultDevice; Eigen::TensorEvaluator<const Eigen::TensorAssignOp<LhsXprType, RhsXprType>, Device>::Index = long int]’
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h:103:9: required from ‘static void Eigen::internal::TensorExecutor<Expression, Device, Vectorizable, Tiling>::run(const Expression&, const Device&) [with Expression = const Eigen::TensorAssignOp<Eigen::TensorMap<Eigen::Tensor<bool, 1, 1, long int>, 0, Eigen::MakePointer>, const Eigen::TensorCwiseBinaryOp<Eigen::internal::scalar_product_op<const bool, const bool>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer> > >; Device = Eigen::DefaultDevice; bool Vectorizable = false; Eigen::internal::TiledEvaluation Tiling = (Eigen::internal::TiledEvaluation)0]’
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h:37:62: required from ‘Eigen::TensorDevice<ExpressionType, DeviceType>& Eigen::TensorDevice<ExpressionType, DeviceType>::operator=(const OtherDerived&) [with OtherDerived = Eigen::TensorCwiseBinaryOp<Eigen::internal::scalar_product_op<const bool, const bool>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer>, const Eigen::TensorMap<Eigen::Tensor<const bool, 1, 1, long int>, 0, Eigen::MakePointer> >; ExpressionType = Eigen::TensorMap<Eigen::Tensor<bool, 1, 1, long int>, 0, Eigen::MakePointer>; DeviceType = Eigen::DefaultDevice]’
/opt/aPaddle/paddle/phi/kernels/cpu/elementwise.h:187:27: required from ‘void phi::SameDimsMultiplyFunctor<DevCtx, T, typename std::enable_if<(! std::is_floating_point<_DInputType>::value)>::type>::operator()(const DevCtx&, const phi::DenseTensor&, const phi::DenseTensor&, phi::DenseTensor*) [with DevCtx = phi::CPUContext; T = bool; typename std::enable_if<(! std::is_floating_point<_DInputType>::value)>::type = void]’
/opt/aPaddle/paddle/phi/kernels/cpu/elementwise.h:197:14: required from ‘void phi::SameDimsElementwiseCompute::operator()(const phi::CPUContext&, const phi::DenseTensor&, const phi::DenseTensor&, phi::DenseTensor*) [with Functor = phi::SameDimsMultiplyFunctor<phi::CPUContext, bool, void>]’
/opt/aPaddle/paddle/phi/kernels/legacy/cpu/elementwise_multiply_kernel.cc:26:1: required from ‘void phi::MultiplyRawKernel(const Context&, const phi::DenseTensor&, const phi::DenseTensor&, int, phi::DenseTensor*) [with T = bool; Context = phi::CPUContext]’
/opt/aPaddle/paddle/phi/kernels/legacy/cpu/elementwise_multiply_kernel.cc:36:1: required from here
/opt/aPaddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/functors/BinaryFunctors.h:80:122: 警告:‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a * b; }

随后make步骤卡住,需要大概1小时后继续
image

到编译95%时,出现报错
image

版本&环境信息 Version & Environment Information

鲲鹏920 Linux localhost.localdomain 4.19.90-52.22.v2207.ky10.aarch64 #1 SMP aarch64 aarch64 aarch64 GNU/Linux
gcc 版本 8.2.0 (GCC)
cmake version 3.27.0-rc3
GPU:nvidia T4
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0
cmake语句:
cmake .. -DPY_VERSION=3.7 -DPYTHON_EXECUTABLE=/opt/gcc/py37_paddle/bin/python -DWITH_ARM=ON -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_XBYAK=OFF -DWITH_GPU=ON -DCUDA_ARCH_NAME=All -DWITH_NCCL=OFF -DWITH_RCCL=OFF

@kane-hu kane-hu added status/new-issue 新建 type/build 编译/安装问题 labels Oct 8, 2023
@liuzhenhai93
Copy link
Contributor

@kane-hu
全架构编译会导致编译包过大, 链接寻址溢出;
如果是 T4 卡,设置编译选项 -DCUDA_ARCH_NAME=Turing, 只变异turing 架构;

@paddle-bot paddle-bot bot added the status/close 已关闭 label Oct 9, 2023
@paddle-bot paddle-bot bot closed this as completed Oct 9, 2023
@paddle-bot paddle-bot bot removed the status/new-issue 新建 label Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/close 已关闭 type/build 编译/安装问题
Projects
None yet
Development

No branches or pull requests

2 participants