Re: [eigen] How to speed up svd?

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


What Christoph said. We should implement a fast,
pivoting-bidiagonalization-followed-by-divide-and-conquer SVD, see
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=67

At some point I wanted to do it, but never got around to doing it, so
this bug needs a taker. It's not too heaving on
eigen-template-metaprogramming and other existing decomposition
classes can be used to give the skeleton.

Benoit

2012/10/5 Christoph Hertzberg <chtz@xxxxxxxxxxxxxxxxxxxxxxxx>:
> On 05.10.2012 14:25, Hugh Perkins wrote:
>>
>> Hi,
>>
>> I run SVD on a 500*1000 dense double matrix of random number, with
>> thin U and V, and it takes about 26 seconds.  The code looks like:
>>
>>      JacobiSVD<MatrixXd,HouseholderQRPreconditioner> svd(In,
>> ComputeThinU | ComputeThinV);
>>
>> On matlab it takes about 1.1 seconds, though admittedly the solution
>> doesn't seem terribly accurate.
>>
>> What are possible reasons for this disparity, and is there anything I
>> can do to improve the situation?
>
>
> At the moment, Eigen only supports a slow but stable SVD decomposer.
> You can somehow use an external fast but instable SVD decomposer. I think
> Gael wrote a mail about this once, but I can't find it right now.
>
> Christoph
>
>
>
> --
> ----------------------------------------------
> Dipl.-Inf. Christoph Hertzberg
> Cartesium 0.049
> Universität Bremen
> Enrique-Schmidt-Straße 5
> 28359 Bremen
>
> Tel: +49 (421) 218-64252
> ----------------------------------------------
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/