@Rasmus, here are some benchmarks: https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2018/08/msg00010.html <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 <[email protected]> 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 > > <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 > <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.214.102&rep=rep1&type=pdf>) > or Pade approximations > (https://pdfs.semanticscholar.org/86d2/28da4fc02672b2c990eb48a5a605c0e0360f.pdf > > <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 <[email protected] >> <mailto:[email protected]>> 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? >> >> https://eigen.tuxfamily.org/dox/classEigen_1_1SelfAdjointView.html\ >> <https://eigen.tuxfamily.org/dox/classEigen_1_1SelfAdjointView.html/> >> >> Do you have some benchmark numbers for your patch? >> >> Rasmus >> >> On Mon, Oct 5, 2020 at 5:07 PM David Tellenbach >> <[email protected] <mailto:[email protected]>> >> 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 <[email protected] >>> <mailto:[email protected]>> 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: >>> [email protected] >>> <https://outlook.office.com/mail/options/mail/[email protected]> | >>> Tel: +31(0)6 438 666 87 | >>> | Netherlands eScience Center <https://www.esciencecenter.nl/> | Science >>> Park 140 | 1098 XG Amsterdam | The Netherlands | >>> | Twitter <https://twitter.com/eScienceCenter> | LinkedIn >>> <https://www.linkedin.com/company/netherlands-escience-center> | Facebook >>> <https://www.facebook.com/NLeScienceCenter/> | YouTube >>> <https://www.youtube.com/channel/UCYLAIMi62d8tx3Ru6DOSPeg> | Newsletter >>> <https://esciencecenter.us8.list-manage.com/subscribe/post?u=a0a563ca342f1949246a9f92f&id=31bfc2303d> >>> | >>> >>> >>> From: David Tellenbach <[email protected] >>> <mailto:[email protected]>> >>> Sent: Sunday, October 4, 2020 0:16 >>> To: [email protected] <mailto:[email protected]> >>> <[email protected] <mailto:[email protected]>> >>> 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 <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> I recently discovered that David Tellenbach started/was in the >>>> middle/finished a >>>> >>>> Hermitian matrix class. >>>> http://manao.inria.fr/eigen_tmp/pullrequests/467/ >>>> <http://manao.inria.fr/eigen_tmp/pullrequests/467/> >>>> 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: >>>> [email protected] >>>> <https://outlook.office.com/mail/options/mail/[email protected]> >>>> | Tel: +31(0)6 438 666 87 | >>>> | Netherlands eScience Center <https://www.esciencecenter.nl/> | Science >>>> Park 140 | 1098 XG Amsterdam | The Netherlands | >>>> | Twitter <https://twitter.com/eScienceCenter> | LinkedIn >>>> <https://www.linkedin.com/company/netherlands-escience-center> | Facebook >>>> <https://www.facebook.com/NLeScienceCenter/> | YouTube >>>> <https://www.youtube.com/channel/UCYLAIMi62d8tx3Ru6DOSPeg> | Newsletter >>>> <https://esciencecenter.us8.list-manage.com/subscribe/post?u=a0a563ca342f1949246a9f92f&id=31bfc2303d> >>>> | >> >
