[eigen] Re: Blas performance on mapped matrices |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: [eigen] Re: Blas performance on mapped matrices*From*: Sameer Agarwal <sameeragarwal@xxxxxxxxxx>*Date*: Mon, 9 Jan 2012 00:07:27 -0800*Cc*: Keir Mierle <keir@xxxxxxxxxx>*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:x-system-of-record:content-type:content-transfer-encoding; bh=tok/8hlRpbq1usYUmITHo49C3tXV63VYnh+rrthWQEs=; b=G6jrR7Sii3DcefKZUc6shkmX9EcJMYF7Jt8mevT0LA3I+tU8tBlqphaBEjh+hEDjzU xVeLnExsA5Ii1qjhmKT9CuyxmedMHYUNfXhF+5sW9bB+O5QMSp7a+FjH2eYoPBy+9XMU nWCuEJ+sKijzIJHpiPth+jJeZbkMDyW/pGS3o=

I should clarify my last question about statically sized blocks. I am aware (and keir reminded me) that I can do block<row_size, col_size>(r, c) to get a statically sized block. But the thing I am looking for is a constructor for block which behaves like the constructor for Matrix, where Matrix<row_size, col_size>(row_size_1, col_size_1) behaves such that if row_size == Dynamic, then you get a dynamic matrix with row_size_1 rows and if row_size != Dynamic then we get a statically sized matrix with row_size rows. Would it be possible to extend the 4 argument constructor for block to behave the same way? Thanks, Sameer On Sun, Jan 8, 2012 at 11:47 PM, Sameer Agarwal <sameeragarwal@xxxxxxxxxx> wrote: > Hi Guys, > We are in the process of a significant code migration from eigen2 to > eigen3. The code uses Eigen::Map to map chunks of memory into RowMajor > matrices and operates on them. The primary operation is of the form > > A.block(r, c, size1, size2) -= B * C; > > A is a mapped matrix. > C is a mapped matrix. > B is an actual Eigen matrix. > > All matrices are RowMajor. For the example being considered, size1 = > size2 = 9. B is 9x3, and C is 3x9. > C and B are statically sized. > > Moving from eigen2 to eigen3 has resulting in a 30% performance > regression. Has something changed significantly in the way Eigen3 > handles mapped matrices, or about the structure of matrix-matrix > multiplication in Eigen3 that would cause this? > > The compiler flags are all the same between our use of eigen2 and > eigen3. Profiling indicates that much of the time is being spent > inside Eigen::internal::gebp_kernel::operator. > > I understand that this is not sufficient information to reproduce this > problem, so I am going to try and create a minimal case which can > reproduce this performance regression. In the meanwhile any insight > into this would be useful. Also is it possible to statically size > blocks like matrices? > > Thank you, > Sameer

**References**:**[eigen] Blas performance on mapped matrices***From:*Sameer Agarwal

**Messages sorted by:**[ date | thread ]- Prev by Date:
**[eigen] subscribe** - Next by Date:
**Re: [eigen] Blas performance on mapped matrices** - Previous by thread:
**[eigen] Blas performance on mapped matrices** - Next by thread:
**Re: [eigen] Blas performance on mapped matrices**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |