Sparse-Matrix-CG-Solver in CUDA

In: In proceedings of Central European Seminar on Computer Graphics for Students (CESCG 2011) (May 2011)
 

Abstract

This paper describes the implementation of a parallelized conjugate gradient solver for linear equation systems using CUDA-C. Given a real, symmetric and positive definite coefficient matrix and a right-hand side, the parallized cg-solver is able to find a solution for that system by exploiting the massive compute power of todays GPUs. Comparing sequential CPU implementations and that algorithm we achieve a speed up from 4 to 7 depending on the dimension of the coefficient matrix. Additionally the concept of preconditioners to decrease the time to find a solution is evaluated using the SSOR method. In the end additional suggestions are provided to further increase the speed of the presented CUDA cg-solver.

Images

Download Paper

Download Paper

Bibtex

@ARTICLE{michels2011-cudacg,
    author = {Michels, Dominik L.},
     title = {Sparse-Matrix-CG-Solver in CUDA},
   journal = {In proceedings of Central European Seminar on Computer Graphics for Students (CESCG 2011)},
      year = {2011},
     month = may,
  abstract = {This paper describes the implementation of a parallelized conjugate gradient solver for linear
              equation systems using CUDA-C. Given a real,  symmetric and positive definite  coefficient  matrix 
              and  a  right-hand  side,  the  parallized cg-solver is able to find a solution for that system by
              exploiting  the  massive  compute  power  of  todays  GPUs. Comparing sequential CPU implementations
              and that algorithm we achieve a speed up from 4 to 7 depending on the dimension of the coefficient
              matrix.  Additionally the concept of preconditioners to decrease the time to find a solution is
              evaluated using the SSOR method.  In the end additional suggestions are provided to further increase
              the speed of the presented CUDA cg-solver.}
}