@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.
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)
David
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 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
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
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
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
|