Registered Member
|
All -
I'm using the ldlt() and llt() operators, and comparing my results against routines using Lapack dpotrf and dpotrs routines. On matrices that are dense (few nonzeros), ldlt()/llt() are about twice as slow. On matrices that are sparse (~ 1% nonzeros or less) the Lapack routines slow way down for larger matrices (5k x 5k) - on the order of 4x slower - while ldlt()/llt() are about the same as before. This performance is very puzzling; there's plenty of memory, so it's not a thrashing problem to virtual memory. Some questions: 1. Has anyone compared ldlt/llt to Lapack routines? 2. Any idea why Lapack would slow down on sparse (not sparsly-encoded) matrices? Any ideas would be helpful. Cheers --Kurt |
Moderator
|
Which eigen version are you using?
For such large matrices and llt the devel branch should be much much faster than the 2.0.x. About sparse vs dense, you are saying that if you take two 5k^2 SPD matrices, one filled with nonzeros, and the other with only 1% of nonzeros, then you observed a 4x slowdown with Lapack? (the "dense" matrix being faster). That really does not make any sense unless maybe your "sparse" matrix is not positive definite? |
Registered users: Bing [Bot], Google [Bot], Sogou [Bot]