Concurrent Number Cruncher : An Efficient Sparse Linear Solver on the GPU.
in: Proc. 27th Gocad Meeting, Nancy
Abstract
A wide class of geometry processing and PDE resolution methods needs to solve a linear system, where
the non-zero pattern of the matrix is dictated by the connectivity matrix of the mesh. The advent of GPUs
with their ever-growing amount of parallel horsepower makes them a tempting resource for such numerical
computations. This can be helped by new APIs (CTM from ATI and CUDA from NVIDIA) which give
a direct access to the multithreaded computational resources and associated memory bandwidth of GPUs;
CUDA even provides a BLAS implementation but only for dense matrices (CuBLAS).
However, existing GPU linear solvers are restricted to specific types of matrices, or use non-optimal compressed
row storage strategies. By combining recent GPU programming techniques with supercomputing
strategies (namely block compressed row storage and register blocking), we implement a sparse generalpurpose
linear solver based on the Conjugate Gradient algorithm which outperforms by up to a factor of
5.5x leading-edge CPU counterparts (MKL / ACML).
Download / Links
BibTeX Reference
@inproceedings{206_Buatois,
abstract = { A wide class of geometry processing and PDE resolution methods needs to solve a linear system, where
the non-zero pattern of the matrix is dictated by the connectivity matrix of the mesh. The advent of GPUs
with their ever-growing amount of parallel horsepower makes them a tempting resource for such numerical
computations. This can be helped by new APIs (CTM from ATI and CUDA from NVIDIA) which give
a direct access to the multithreaded computational resources and associated memory bandwidth of GPUs;
CUDA even provides a BLAS implementation but only for dense matrices (CuBLAS).
However, existing GPU linear solvers are restricted to specific types of matrices, or use non-optimal compressed
row storage strategies. By combining recent GPU programming techniques with supercomputing
strategies (namely block compressed row storage and register blocking), we implement a sparse generalpurpose
linear solver based on the Conjugate Gradient algorithm which outperforms by up to a factor of
5.5x leading-edge CPU counterparts (MKL / ACML). },
author = { Buatois, Luc AND Caumon, Guillaume AND Levy, Bruno },
booktitle = { Proc. 27th Gocad Meeting, Nancy },
title = { Concurrent Number Cruncher : An Efficient Sparse Linear Solver on the GPU. },
year = { 2007 }
}
