424 Star 4.3K Fork 424

GVPPaddlePaddle / Paddle

 / 详情

error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’}

待办的
创建于  
2024-05-08 09:32

问题描述 Issue Description

issue description:
compiling Paddle Release/2.6 on Jeston orin nx
issue:
Eigner issue during paddlepaddle compilation
command :
cd build
cmake .. -DWITH_GPU=ON -DWITH_NV_JETSON=ON
make
error message detail :
Consolidate compiler generated dependencies of target paddle_flags
[ 7%] Built target paddle_flags
Consolidate compiler generated dependencies of target phi
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/data_transform.cc.o
In file included from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:214,
from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:14,
from /home/tarik/Downloads/Paddle/paddle/fluid/platform/device_context.h:76,
from /home/tarik/Downloads/Paddle/paddle/phi/api/lib/data_transform.cc:21:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h: In function ‘Packet Eigen::internal::pload(const typename Eigen::internal::unpacket_traits::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits::type = signed char]’:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h:1675:9: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’} from an array of ‘const int8_t’ {aka ‘const signed char’} [-Werror=class-memaccess]
1675 | memcpy(&res, from, sizeof(Packet4c));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:172,
from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:14,
from /home/tarik/Downloads/Paddle/paddle/fluid/platform/device_context.h:76,
from /home/tarik/Downloads/Paddle/paddle/phi/api/lib/data_transform.cc:21:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/GenericPacketMath.h:143:8: note: ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’} declared here
143 | struct eigen_packet_wrapper
| ^~~~~~~~~~~~~~~~~~~~
In file included from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:214,
from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:14,
from /home/tarik/Downloads/Paddle/paddle/fluid/platform/device_context.h:76,
from /home/tarik/Downloads/Paddle/paddle/phi/api/lib/data_transform.cc:21:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h: In function ‘Packet Eigen::internal::ploadu(const typename Eigen::internal::unpacket_traits::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits::type = signed char]’:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h:1720:9: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’} from an array of ‘const int8_t’ {aka ‘const signed char’} [-Werror=class-memaccess]
1720 | memcpy(&res, from, sizeof(Packet4c));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:172,
from /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:14,
from /home/tarik/Downloads/Paddle/paddle/fluid/platform/device_context.h:76,
from /home/tarik/Downloads/Paddle/paddle/phi/api/lib/data_transform.cc:21:
/home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/GenericPacketMath.h:143:8: note: ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’} declared here
143 | struct eigen_packet_wrapper
| ^~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [paddle/phi/CMakeFiles/phi.dir/build.make:244: paddle/phi/CMakeFiles/phi.dir/api/lib/data_transform.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:4887: paddle/phi/CMakeFiles/phi.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

solution detail:
vim /home/tarik/Downloads/Paddle/third_party/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/GenericPacketMath.h
struct eigen_packet_wrapper
{
EIGEN_ALWAYS_INLINE operator T&() { return m_val; }
EIGEN_ALWAYS_INLINE operator const T&() const { return m_val; }

// EIGEN_ALWAYS_INLINE eigen_packet_wrapper() {}
EIGEN_ALWAYS_INLINE eigen_packet_wrapper() = default;
EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v) : m_val(v) {}
EIGEN_ALWAYS_INLINE eigen_packet_wrapper& operator=(const T &v) {
m_val = v;
return *this;
}

  T m_val;
};

solution reference :
https://gitlab.com/libeigen/eigen/-/commit/cb507309937958c632147de87e8f1231d6698847

after editing, rerun make:
copy_if_different /home/tarik/Downloads/Paddle/paddle/phi/kernels/sparse/gpu/cutlass_generator/generated/gemm/all_gemm_operations.h.tmp to /home/tarik/Downloads/Paddle/paddle/phi/kernels/sparse/gpu/cutlass_generator/all_gemm_operations.h
copy_if_different /home/tarik/Downloads/Paddle/paddle/phi/kernels/sparse/gpu/cutlass_generator/generated/gemm/configurations.h.tmp to /home/tarik/Downloads/Paddle/paddle/phi/kernels/sparse/gpu/cutlass_generator/configurations.h
[ 7%] Built target cutlass_codegen
[ 7%] Built target paddle_flags
Consolidate compiler generated dependencies of target phi
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/data_transform.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/api_custom_impl.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/tensor_method.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/tensor_copy.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/scalar.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/int_array.cc.o
[ 7%] Building CXX object paddle/phi/CMakeFiles/phi.dir/api/lib/api.cc.o

版本&环境信息 Version & Environment Information


Paddle version: N/A
Paddle With CUDA: N/A

OS: ubuntu 22.04
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: N/A
CMake version: version 3.22.1
Libc version: glibc 2.35
Python version: 3.10.12

CUDA version: 12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0
cuDNN version: 8.9.4
Nvidia driver version: N/A
Nvidia driver List:
GPU 0: Orin (nvgpu)


评论 (0)

tarikbeijing 创建了任务

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Python
1
https://gitee.com/paddlepaddle/Paddle.git
git@gitee.com:paddlepaddle/Paddle.git
paddlepaddle
Paddle
Paddle

搜索帮助