[eigen] malloc in Scalar x Matrix Matrix |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] malloc in Scalar x Matrix Matrix
- From: Henrik Larsson <larsson@xxxxxxxxxxxxxxxx>
- Date: Tue, 9 Jul 2019 16:15:21 +0200
- Autocrypt: addr=larsson@xxxxxxxxxxxxxxxx; prefer-encrypt=mutual; keydata= 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 GltpXQm7
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=uni-kiel.de ; s=20180612; h=Content-Type:MIME-Version:Date:Message-ID:Subject:From:To: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UNqLj0WWeBdO7yEdWwpVCcc5BmJgCu7GYfaPpLnuZgI=; i=@pctc.uni-kiel.de; b=yXuQM Jrl9fR1gPrYO6tqmJrxUfNFhBGnuak6RFpEHqsfQPK41uEGLRq3O7jctexP4jtJEcfWiihNFSaRYS jOXncBh3zC6gIi75WlNRNo2VQgVJk49vB1vstrpDSV0GXYUrRm9i32LiT+WJEKLkZvLukFdp+fm/S rPQHtT3DCvIQ=;
- Openpgp: preference=signencrypt
Hi,
I have an expressions of type
C.noalias() = alpha * A * B;
where alpha is a double and A, B and C are Maps of double Dynamic
Matrices of proper sizes.
I want to avoid any memory allocation but when I try to debug the
expression using EIGEN_RUNTIME_NO_MALLOC, I get an exception since
malloc is still used.
Only if I use the expression _without_ the scalar, i.e.,
C.noalias() = A * B;
I don't get an exception. Unfortunately, I do not have a minimal working
example. A minimal working example actually *works* (without throwing an
exception) but for reasons I do not understand,
I get an exception in my actual code, which is more complicated, even if
I first "remap" everything to the following expression:
const Map<const MatrixXd> A( _A.data(), _A.rows(), _A.cols()); /* size 2
x 10; _A, _B are templated Maps of RowMajor Dynamic Matrices; _C is a
normal reference to RowMajor Dynamic Matrix.*/
const Map<const MatrixXd> B( _B.data(), _B.rows(), _B.cols()); /* size
10 x 2*/
Map<MatrixXd> C( _C.data(), _C.rows(), _C.cols()); /* size 2 x 2*/
double v = 2.0;
// C.noalias() = A * B; // no memory allocation
C.noalias() = v * A * B; // memory allocation
Could you please give me a hint why I get this memory allocation? Since
I do not have a minimal working example that throws the exception, I
attach a backtrace of the exception in my actual code.
It seems that the matrix size of the lhs ("C.noalias()") somehow gets
lost within the Eigen code. At # 15 of the attached backtrace, the
matrix size is still known but afterwards it is set to 0 (I cannot print
the matrix size in #14 due to code inlining).
I use eigen 3.3.7-2 from arch linux.
Best regards,
Henrik
#0 0x000015554bd62755 in raise () from /usr/lib/libc.so.6
#1 0x000015554bd4d851 in abort () from /usr/lib/libc.so.6
#2 0x000015554bd4d727 in __assert_fail_base.cold () from /usr/lib/libc.so.6
#3 0x000015554bd5b026 in __assert_fail () from /usr/lib/libc.so.6
#4 0x0000555555c03def in Eigen::internal::check_that_malloc_is_allowed () at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:143
#5 0x0000555555c03cf1 in Eigen::internal::aligned_malloc (size=160) at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:155
#6 0x0000555555c03cd5 in Eigen::internal::conditional_aligned_malloc<true> (size=160) at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:214
#7 0x0000555555c09ce5 in Eigen::internal::conditional_aligned_new_auto<double, true> (size=20) at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:374
#8 0x0000555555c09c52 in Eigen::DenseStorage<double, -1, -1, -1, 0>::resize (this=0x7fffffff5ba0, size=20, rows=2, cols=10) at /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:408
#9 0x0000555555c09be6 in Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::resize (this=0x7fffffff5ba0, rows=2, cols=10) at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:293
#10 0x0000555555f5940e in Eigen::internal::resize_if_allowed<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, double, double> (dst=..., src=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:720
#11 0x0000555555f59272 in Eigen::internal::call_dense_assignment_loop<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::internal::assign_op<double, double> > (dst=..., src=...,
func=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:734
#12 0x0000555555f591f2 in Eigen::internal::Assignment<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>::run (
dst=..., src=..., func=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:879
#13 0x0000555555f5918d in Eigen::internal::call_assignment_no_alias<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::internal::assign_op<double, double> > (dst=..., src=..., func=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:836
#14 0x0000555555f5911f in Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::_set_noalias<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const> > (this=0x7fffffff5ba0, other=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/PlainObjectBase.h:732
[MATRIX/LHS SIZE KNOWN/CORRECT] #15 0x0000555555f590ad in Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::_init1<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const> > (this=0x7fffffff5ba0, other=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/PlainObjectBase.h:816
#16 0x0000555555f59007 in Eigen::Matrix<double, -1, -1, 0, -1, -1>::Matrix<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const> > (this=0x7fffffff5ba0, x=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/Matrix.h:294
#17 0x0000555555f58e86 in Eigen::internal::product_evaluator<Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 1>, 8, Eigen::DenseShape, Eigen::DenseShape, double, double>::product_evaluator (this=0x7fffffff5ba0, xpr=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/ProductEvaluators.h:446
#18 0x0000555555f58b18 in Eigen::internal::evaluator<Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 1> >::evaluator (
this=0x7fffffff5ba0, xpr=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/ProductEvaluators.h:35
#19 0x0000555555f589bd in Eigen::internal::call_dense_assignment_loop<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op<double, double> > (dst=..., src=..., func=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:730
#20 0x0000555555f58942 in Eigen::internal::Assignment<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>::run (dst=..., src=..., func=...)
at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:879
#21 0x0000555555f5889d in Eigen::internal::call_assignment_no_alias<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op<double, double> > (dst=..., src=..., func=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:836
#22 0x0000555555f58573 in Eigen::internal::generic_product_impl<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::DenseShape, Eigen::DenseShape, 3>::evalTo<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > > (dst=..., lhs=..., rhs=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/ProductEvaluators.h:397
#23 0x0000555555f5843c in Eigen::internal::generic_product_impl<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::DenseShape, Eigen::DenseShape, 8>::evalTo<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > > (dst=..., lhs=..., rhs=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/products/GeneralMatrixMatrix.h:431
#24 0x0000555555f5835f in Eigen::internal::Assignment<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0>, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>::run (dst=..., src=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/ProductEvaluators.h:148
#25 0x0000555555f5828d in Eigen::internal::call_assignment_no_alias<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0>, Eigen::internal::assign_op<double, double> > (dst=..., src=..., func=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/AssignEvaluator.h:836
#26 0x0000555555f3cf9d in Eigen::NoAlias<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::MatrixBase>::operator=<Eigen::Product<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, -1, 0, -1, -1> const> const, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> > const>, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0> > (this=0x7fffffff5f70, other=...) at /usr/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/NoAlias.h:42