Singular Value Decomposition on a GPU
About:
The aim of this project is to implement SVD (Singular Value Decomposition) on a GPU. The motivation comes from the fact that GPUs of the present day are very powerful and can be used as co-processors to performing general-purpose computation tasks (apart from the specific purpose they are designed for). Moreover, SVD has several applications in scientific computing, statistics and signal processing (as a method for noise reduction), which makes it very desirable to have a GPU based implementation of SVD.
Prior Work:
There are lots of algorithms to efficiently perform SVD on a CPU (eg. LAPACK), but none exist for the GPU. Other algorithms (like sorting and LU Decomposition) have been mapped onto the GPU though.
Expectation:
By the end of this semester, I hope to create a library that can be used to compute the SVD of a matrix. I also intend to benchmark the implementation and compare it with existing CPU implementations of SVD (read LAPACK).
Resources
- gpgpu.org - General Purpose Computation on GPUs
- SVD - Wikipedia Article
- QR Decomposition - Wikipedia Article
- LAPACK - Linear Algebra PACKage
- LU-GPU - LU Decomposition on a GPU
Note: This is the combined course project for two of my courses: Computer Graphics and General Purpose Computation on Graphics Processors.