Re: [eigen] Hermitian matrices

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


@Rasmus, here are some benchmarks: https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2018/08/msg00010.html (scroll the the very end). As already said, Hermitian * Hermitian can give quite good performance and Dense * Hermitian doesn't really hurt. 

On 6. Oct 2020, at 02:26, David Tellenbach <david.tellenbach@xxxxxx> wrote:

IIRC it was in fact you who suggested using not a plain packed but a rectangular full packed format ;-) (https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/lapack-routines/matrix-storage-schemes-for-lapack-routines.html#matrix-storage-schemes-for-lapack-routines_RFP_STORAGE)

If this is worth definitely depends on the particular use-case. It has been shown that a rectangular full packed format can be beneficial for e.g. Cholesky (http://www.netlib.org/lapack/lawnspdf/lawn199.pdf) or Pade approximations (https://pdfs.semanticscholar.org/86d2/28da4fc02672b2c990eb48a5a605c0e0360f.pdf). I published benchmark on this list and will try to dig them out. A Hermitian*Hermitian product can be quite fast (you can basically fall back to gemm for blocks in the RFP format) but Dense*Hermitian was not so good if I remember correctly.

David

On 6. Oct 2020, at 02:16, Rasmus Munk Larsen <rmlarsen@xxxxxxxxxx> wrote:

David,

I can see that this might save 50% of memory by only storing the upper or lower triangle, and it would be nice to be able to automatically dispatch to faster eigensolvers etc. for Hermitian matrices. However, packed storage kernels are notoriously hard to optimize, and I wonder how much we would gain over the existing mechanism like SelfAdjointView?


Do you have some benchmark numbers for your patch?

Rasmus

On Mon, Oct 5, 2020 at 5:07 PM David Tellenbach <david.tellenbach@xxxxxxxxxxxxx> wrote:
Hi Jens,

It would be great if you could finish this! I just saw that the patch is not accessible anymore, I'll see if I can find it.

Best,
David

On 4. Oct 2020, at 21:27, Jens Wehner <J.Wehner@xxxxxxxxxxxxxxxxx> wrote:

Thanks David,

I would probably like to give it a shot to brush up on my template programming skills or lack thereof. 

Do you have the code somewhere public so I can have a look? If you have time afterwards we can have a chat about the better implementation.

Cheers Jens

| Jens Wehner, PhD | eScience Research Engineer Email: j.wehner@xxxxxxxxxxxxxxxxx | Tel: +31(0)6 438 666 87 |
| Netherlands eScience Center | Science Park 140 | 1098 XG Amsterdam The Netherlands |



From: David Tellenbach <david.tellenbach@xxxxxx>
Sent: Sunday, October 4, 2020 0:16
To: eigen@xxxxxxxxxxxxxxxxxxx <eigen@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [eigen] Hermitian matrices
 
Hi Jens,

Yes, I've implemented support for Hermitian matrices as a Google Summer of Code student in 2018 and finishing it is still somewhere on my backlog. However, with today's knowledge the implementation should look quite differently. If you are interested to work on this I'm happy to discuss. Otherwise you will have to wait until I find some time to reimplement it. This won't take me too long but without committing to anything, I can already say that I won't find time before the beginning of 2021.

Best,
David

On 2. Oct 2020, at 23:30, Jens Wehner <J.Wehner@xxxxxxxxxxxxxxxxx> wrote:

I recently discovered that David Tellenbach started/was in the middle/finished a 

Hermitian matrix class. 
I wanted to know what the status is and if any help is needed to push that along.

Cheers Jens
| Jens Wehner, PhD | eScience Research Engineer Email: j.wehner@xxxxxxxxxxxxxxxxx | Tel: +31(0)6 438 666 87 |
| Netherlands eScience Center | Science Park 140 | 1098 XG Amsterdam The Netherlands |





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