|
From: | Marcus Müller |
Subject: | Re: [Discuss-gnuradio] SVD from LAPACK takes too long time |
Date: | Tue, 03 Mar 2015 10:18:51 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Hello Hoang, exciting :) Actually, if you're already using LAPACK, I doubt there's much potential for further optimization on the same platform -- if you, however, know your stuff is going to only be run on Intel Xeons or so, than maybe have a look at the Intel math kernel library lapack examples. Maybe you'd want to accelerate by using GPUs, then you'd have a look at OpenCl or CUDA implementation, or theano (however, I don't know how readily available things like SVD are for theano). One more thing: Since you're doing SVD using LAPACK yourself, I trust you've already chosen the right routine (general, fully equipped complex-valued matrix). I'm not completely convinced, though: Have you had a look at [1]? It seems SVD $A=V \Sigma U^H$ is a two step process: First, the input matrix is decomposed into left and right unitary matrixes $U_1$ and $V_1^H$ and an bidiagonal matrix $B$ using CGEBRD, and after that, $B$ is SVD'ed, yielding $B=U_2 \Sigma V_2^H$; the product $V_1 V_2$ then is $V$. Maybe for your application $V1$ is sufficient, because you can rearrange your problem mathematically? Greetings, Marcus [1] http://www.netlib.org/lapack/lug/node53.html On 03/03/2015 08:13 AM, Hoang Ngo Khac
wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |