$include_dir="/home/hyper-archives/ublas/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [ublas] Matrix multiplication performance
From: Michael Lehn (michael.lehn_at_[hidden])
Date: 2016-01-20 15:46:06
So has anyone compared the performance yet?
On 20 Jan 2016, at 00:47, Joaquim Duran Comas <jdurancomas_at_[hidden]> wrote:
> Hello,
> 
> I think that some development about a new product algorithm was done in the branchhttps://github.com/uBLAS/ublas/tree/ublas_feature0004_fast_matrix_multiplication.
> 
> Thanks and Best Regards,
> Joaquim Duran
> 
> 
> 2016-01-19 15:41 GMT+01:00 Michael Lehn <michael.lehn_at_[hidden]>:
> Sorry for the inconvenience.  I guess sending attachments to the mailing list is prohibited.  I put the
> code on a website:
> 
> http://apfel.mathematik.uni-ulm.de/~lehn/test_ublas/
> 
> 
> 
> On 19 Jan 2016, at 15:14, palik imre <imre_palik_at_[hidden]> wrote:
> 
>> Hi Michael,
>> 
>> I cannot see any attachments  ...
>> 
>> 
>> On Tuesday, 19 January 2016, 11:12, palik imre <imre_palik_at_[hidden]> wrote:
>> 
>> 
>> Is there a public git repo for ublas 2.0?
>> 
>> 
>> On Monday, 18 January 2016, 9:25, Oswin Krause <Oswin.Krause_at_[hidden]> 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_at_[hidden]
>> > http://listarchives.boost.org/mailman/listinfo.cgi/ublas
>> > Sent to: Oswin.Krause_at_[hidden]
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> ublas mailing list
>> ublas_at_[hidden]
>> http://listarchives.boost.org/mailman/listinfo.cgi/ublas
>> Sent to: michael.lehn_at_[hidden]
> 
> 
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> http://listarchives.boost.org/mailman/listinfo.cgi/ublas
> Sent to: jdurancomas_at_[hidden]
> 
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> http://listarchives.boost.org/mailman/listinfo.cgi/ublas
> Sent to: michael.lehn_at_[hidden]