Re: [eigen] Blocking triangular Sylvester solver |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
Thanks for your advice. Now I am trying
- Recursive blocked algorithm
- Vectorization only
which are much easier for even quasitriangular matrices.
I wrote my own kernels to eliminate temporaries, but they are
really redundant with triangular solvers. :-(
Sincerely,
Chen-Pang
在 2014 七月 8 週二 18:34:12,Gael Guennebaud 寫道:
> Hi,
>
> trying to directly write a cache-friendly implementation is probably a bit
> too difficult. I'd recommend to first have a working implementation based
> on vector-vector operations and then see how to leverage more efficient
> matrix-vector or even matrix-matrix operations.
>
> Moreover, it would be better to write a high-level blocking strategy as in
> the PartialPivLU and LLT solvers and let the existing triangular solver and
> matrix products deal with the nasty details. Such an approach should lead
> to a much simpler code, with less redundancy, and the result will be more
> future proof as the internal matrix product kernels are subject to change
> from one version to the other.
>
> cheers,
> gael
>
>
> On Fri, Jul 4, 2014 at 7:34 PM, Chen-Pang He <jdh8@xxxxxxxxxxxxxx> wrote:
>
> > I am writing Sylvester-like solvers. I began with triangular Sylvester
> > equation. Now I have done with vectors, i.e. when the solution is a
> > column-vector or a row-vector.
> >
> > However, when I look at Eigen/src/Core/products/TriangularSolverMatrix.h,
> > I see
> > different blocking methods for on-the-left and on-the-right. What is the
> > best
> > blocking when the solution is a general matrix?
> >
> > The attachment is my current work. The TODO comment marks where I got
> > stuck.
> >
> > Regards,
> > Chen-Pang