[eigen] Re: Blas performance on mapped matrices

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


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



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