Open minhlab opened 7 years ago
My friend and I found the problem: some unaligned pointers ended up in Eigen and broke it. This is a stack trace: (__P=0x2aaab8d64bc8
is not 16-aligned pointer).
#0 0x00002aaaabe7c49b in _mm_load_ps (__P=0x2aaab8d64bc8) at /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/xmmintrin.h:898
#1 Eigen::internal::pload<float __vector>(Eigen::internal::unpacket_traits<float __vector>::type const*) (from=0x2aaab8d64bc8)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/arch/SSE/PacketMath.h:218
#2 0x00002aaaabe7d7b2 in Eigen::internal::ploadt<float __vector, 1>(Eigen::internal::unpacket_traits<float __vector>::type const*) (from=0x2aaab8d64bc8)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/GenericPacketMath.h:290
#3 0x00002aaaabf84193 in Eigen::MapBase<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, 0>::packet<1> (
this=0x7fffffffca80, rowId=0, colId=0) at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/MapBase.h:116
#4 0x00002aaaabf83dda in Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1>::packet_impl<1> (this=0x7fffffffca80, row=0, col=0, id=0)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/DiagonalProduct.h:111
#5 0x00002aaaabf839a8 in Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1>::packet<1> (this=0x7fffffffca80, row=0, col=0)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/DiagonalProduct.h:83
#6 0x00002aaaabf82f96 in Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1>::packet<1> (this=0x7fffffffca80, idx=0)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/DiagonalProduct.h:92
#7 0x00002aaaabf81749 in Eigen::SelfCwiseBinaryOp<Eigen::internal::scalar_sum_op<float>, Eigen::Matrix<float, -1, 1, 0, -1, 1>, Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1> >::copyPacket<Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1>, 1, 1> (this=0x7fffffffcb00, index=0, other=...)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h:121
#8 0x00002aaaabf7ff5f in Eigen::internal::assign_impl<Eigen::SelfCwiseBinaryOp<Eigen::internal::scalar_sum_op<float>, Eigen::Matrix<float, -1, 1, 0, -1, 1>, Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1> >, Eigen::DiagonalProduct<Eigen::Block<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > ---Type <return> to continue, or q <return> to quit---
const, -1, 1, true>, Eigen::DiagonalWrapper<Eigen::Map<Eigen::Matrix<float, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const>, 1>, 3, 0, 0>::run (dst=..., src=...)
at /home/minhle/scratch/proref/OxLM-2017-10-09/src/third_party/eigen/Eigen/src/Core/Assign.h:410
The pointer appears in frames 1-3 as this
and in frames 4-7 as this->m_data
before we stop tracking.
We fixed it by inserting these commands at line 4 of src/CMakeLists.txt
add_definitions(-DEIGEN_DONT_VECTORIZE=1)
add_definitions(-DEIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT=1)
It doesn't say anything else.