Hi Aanchan,

 > Just to give you an intro:
> I work in speech recognition, with C/C++ toolkits like HTK and Kaldi. We
> have added some of our own libraries to these codebases maintained
> internally at McGill. I am also familiar with Python, Perl, Bash and
> CUDA. I use a Python wrapper called Gnumpy (wrapped around a CUDA matrix
> library called CUDAMat) to train neural networks on GPU boards
> routinely. I use Linear Algebra in my work routinely.

Ah, I see, thanks for the informations, all good stuff :-)


> I had a very nice conversation with Philippe on IRC who mentioned that
> there are some issues with GEMV in PyViennaCL. Since I am familiar with
> Gnumpy I could look into that.

Hmm, that might be pretty hard to debug for a start, since it connects 
the most high-level-layer with the most low-level functionality. Also it 
seems like Philippe found a fix for this just shortly after your chat.


 > Philippe also mentioned that the current
> implementation of the SVD is a bit slow. I could profile that, and start
> from there. If necessary start with a newer implementation and see if I
> get any better.

This is actually a very good starting point. We get a few user requests 
on a faster SVD, and I think there is quite a bit of optimization 
potential for the existing OpenCL implementation. A bachelor student 
will also port this to CUDA and OpenMP in the next months, so if you 
want to look at the OpenCL part now, it would certainly help.


> I was also recently working with the Generalized SVD. As
> of the 70's the GSVD was developed for N=2 matrices. Recently a group at
> Utah has developed it for three or more matrices
> :http://www.alterlab.org/HO_GSVD/. N=2 matrices case is based off the QR
> decomposition, for N>2 a QR decomposition based method is not that
> straightforward. But given their current (non-QR) solution I could try
> and implement that.

This also sounds like a great project to start with. Although I only 
looked at the paper briefly, the algorithm looks sufficiently compact. 
More importantly, you also seem to have direct use for the 
implementation, which is a good thing maintenance-wise :-)


> Do these sound like good things to start with?

Generalized SVD and 'standard' SVD are certainly good things to look at 
if you're familiar with the linear algebra behind it. I can also send 
you slides about a randomized SVD algorithm, which I know is fairly easy 
to implement for all three compute backends with the existing 
functionality in ViennaCL.

Are you fine with issuing pull requests through GitHub for a start? If 
you want to start off with a stable state, I suggest you start (i.e. 
fork) early next week when the 1.6.0 release is out. :-)

Best regards,
Karli


------------------------------------------------------------------------------
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to