From: Bruno Turcksin Date: Thu, 26 Apr 2018 21:42:29 +0000 (-0400) Subject: Add section about GPU support X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=805da93894d7424c9dfea3e9dd355d8148d1301a;p=release-papers.git Add section about GPU support --- diff --git a/9.0/paper.bib b/9.0/paper.bib index ffb40f7..65fe443 100644 --- a/9.0/paper.bib +++ b/9.0/paper.bib @@ -746,4 +746,14 @@ year = {2009} pages = {525--532}, doi = {10.1007/11758549_73}, organization = {Springer}, -} \ No newline at end of file +} + +@Misc{cusolver, + title = {cu{SOLVER} {L}ibrary}, + note = {\url{https://docs.nvidia.com/cuda/cusolver/index.html}} +} + +@Misc{cusparse, + title = {cu{SPARSE} {L}ibrary}, + note = {\url{https://docs.nvidia.com/cuda/cusparse/index.html}} +} diff --git a/9.0/paper.tex b/9.0/paper.tex index e0ee8f0..99f9ac6 100644 --- a/9.0/paper.tex +++ b/9.0/paper.tex @@ -488,9 +488,24 @@ thereby clarifying object ownership responsibilities and avoiding memory leaks. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Support for GPU computations} -\marginpar{Bruno?} -... - +Heterogeneous computing is becoming more prevalent in supercomputing and this is +a trend that is expected to continue in the future. In particular, the use of +GPU has been increasing the last few years. + +This release of \dealii adds support for GPU both for matrix-based and +matrix-free applications. For matrix-based applications, we rely on +cuSPARSE\cite{cusparse} and cuSOLVER\cite{cusolver} for operations on sparse +matrices such as matrix-vector multiplication and for direct solvers. We have +introduced a new type of sparse matrix, \texttt{CUDAWrappers::SparseMatrix}, +which moves onto the device a \dealii \texttt{SparseMatrix} and changes the +format of the underlying data to the appropriate CSR format used by cuSPARSE. We +also have added wrappers for Cholesky and LU factorizations provided by +cuSOLVER. In practice, a user would assemble the matrix associated to the system +on the host and then move the matrix to the device. At this point, the system +would be solved on the device and the solution would be moved back to the host. + +We also have some support for matrix-free computation on GPU. For now, the +evaluation of the operator is limited to mesh without hanging-nodes. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -684,6 +699,8 @@ following: \item ARPACK \cite{arpack} \item Assimp \cite{assimp} \item BLAS and LAPACK \cite{lapack} +\item cuSOLVER \cite{cusolver} +\item cuSPARSE \cite{cusparse} \item Gmsh \cite{geuzaine2009gmsh} \item GSL \cite{gsl2016} \item HDF5 \cite{hdf5}