Dear gmm and getfem users,
I have a question about the performance of gmm. I had a piece of code in MATLAB
and I need to convert to a C++ program. Personally, I found gmm very
comprehensive and tried to use it. However, I am experiencing
siginicant performance deacreas which is most probably caused by my own
mistake but I cannot see it. I would be appreciated if any of you can
help me in this regard.
My algorithm entails iterative matrix-matrix multiplication (both dense and sparse). Here is one of the problem I have:
Let's
assume that W is 1000000x10 matrix and H is 10x20 matrix, in MATLAB it
takes about 0.3 second to compute V = W*H but I try to do the same
product using gmm library it takes about 11.0 seconds ! Here is a
command I used to perform this task:
gmm::mult(W, H, V);
in which W, H and V are both Dense matrices:
gmm::dense_matrix< double > W ;
gmm::dense_matrix< double > H ;
gmm::dense_matrix< double > V ;
I
tried linking to blas, lapack and atlas by adding #define
GMM_USES_LAPACK to the program and linking to them as described in the
following link in the documentation:
but I did not see any
improvement in the performance. Since, there is suck a big gap between
MATLAB and gmm time for the product computation, I speculate that I
should have mess it up somewhere but I cannot see it. I would
appreciate if anybody can help.
Regards,
Kayhan