-----------------------------------------------------------------------------------
Dr. Michael Lehn
University of Ulm, Institute for Numerical Mathematics
Helmholtzstr. 20
D-89069 Ulm, Germany
Phone: (+49) 731 50-23534, Fax: (+49) 731 50-23548
-----------------------------------------------------------------------------------

On 18 Jan 2016, at 09:25, Oswin Krause <Oswin.Krause@ruhr-uni-bochum.de> wrote:

Hi Palik,

this is a known problem. In your case you should already get better performance when using axpy_prod instead of prod. There are currently moves towards a ublas 2.0 which should make this a non-problem in the future.


On 2016-01-17 21:23, palik imre wrote:
Hi all,
It seems that the matrix multiplication in ublas ends up with the
trivial algorithm.  On my machine, even the following function
outperforms it for square matrices bigger than 173*173 (by a huge
margin for matrices bigger than 190*190), while not performing
considerably worse for smaller matrices:
matrix<double>
matmul_byrow(const matrix<double> &lhs, const matrix<double> &rhs)
{
 assert(lhs.size2() == rhs.size1());
 matrix<double> rv(lhs.size1(), rhs.size2());
 matrix<double> r = trans(rhs);
 for (unsigned c = 0; c < rhs.size2(); c++)
   {
     matrix_column<matrix<double> > out(rv, c);
     matrix_row<matrix<double> > in(r, c);
     out = prod(lhs, in);
   }
 return rv;
}
Is there anybody working on improving the matrix multiplication performance?
If not, then I can try to find some spare cycles ...
Cheers,
Imre Palik
_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: Oswin.Krause@ruhr-uni-bochum.de
_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: michael.lehn@uni-ulm.de