One of the best things about CULA is that it features many algorithms that are GPU-accelerated nowhere else. I wanted to take a moment to highlight our CUDA-Accelerated Singular Value Decomposition (SVD) algorithm. While others have implemented more special purpose SVD algorithms, no one has implemented a fully LAPACK conformant, GPU-Accelerated SVD that performs as well as ours does. Our SVD currently exhibits a performance that is 5 times as fast as CPU implementations. This is especially useful because SVD is a long running algorithm, taking up to 15 minutes in CPU codes for matrices of moderate size. Being able to shrink that time down to 3 minutes opens up new possibilities for codes that make heavy use of SVD.
This is a screenshot from a demo we gave at GTC 2009. The demo used SVD to embed an invisible, hard-to-detect digital watermark in a movie. Our CUDA accelerated SVD led to a factor of 5 increase in performance over a CPU-only solution.
Try it for now, for free, in CULA Basic.
One of the big announcements at GTC was Matlab's integrated GPU computing toolbox and this generated considerable buzz. And one of the questions we receive most often is regarding the potential for Matlab to experience speedups from GPU computing. Matlab is one of those great products in terms of usability but the most common complaint is that it's too slow, so GPUs are an obvious fit here. Our friends over at Accelereyes have put together a nice summary on the state of GPU computing in Matlab, and we wanted to share that. For the advanced CULA and Matlab users out there, it is also worth checking out our recent blog series where we describe the process of manually integrating CULA routines into Matlab code.