|
Registered Member
|
Hello everyone.
I am in process of implementing mesh deformations algorithm. But i am having some performance issues: Here is the code:
qnt.transposeInPlace(); is a (9,1) Matrix, which i try to transpose. It seems to slow down the loop quite dramatically, is this normal behavior, or is there an optimization procedure? I am using Visual-studio 2013 ( 120 toolset ); Thanks! |
|
Moderator
|
Please, use VectorXf for vectors, and then simply do to fully exploit Eigen:
AqqInverse += qT * qT.transpose(); Also, do not benchmark in "debug" mode It is at least 10 times slower without compiler optimizations.
|
|
Registered Member
|
Thanks, that helped in a way. But when i try to use VectorXf instead of MAtrixXf , i get worse performance.
I do test everything in release build. Why would this be the case? Also using .noalias() helped quite bit "AqqInverse.noalias() += qT * qT.transpose();" |
|
Moderator
|
Hm, strange because I observe a x6 speedup. You can even get higher performance by assembling a larger matrix, and do a big matrix-matrix product:
I get:
|
Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell, Yahoo [Bot]