cuPentBatchA batched pentadiagonal solver for NVIDIA GPUs
Abstract
We introduce cuPentBatchour own pentadiagonal solver for NVIDIA GPUs. The development of cuPentBatch has been motivated by applications involving numerical solutions of parabolic partial differential equations, which we describe. Our solver is written with batch processing in mind (as necessitated by parameter studies of various physical models). In particular, our solver is directed at those problems where only the righthand side of the matrix changes as the batch solutions are generated. As such, we demonstrate that cuPentBatch outperforms the NVIDIA standard pentadiagonal batch solver gpsvInterleavedBatch for the class of physicallyrelevant computational problems encountered herein.
Program Files doi:http://dx.doi.org/10.17632/ccrp2pyyyj.1
Licensing Provisions: Apache License 2.0
Programming Languages: C, C++, CUDA
Nature of Problem: cuPentBatch has been developed to solve batches of pentadiagonal systems in parallel. Pentadiagonal systems appear commonly in the numerical solution of 4th order derivatives and in 4th order accurate 2nd order derivatives. The need for batch solving these is apparent when preforming parameter studies or when solving 2D/3D systems with inversion methods such as ADI.
Solution Method: cuPentBatch implements an LU factorisation for a banded pentadiagonal matrix on a GPU, solving batches of them in parallel across threads. This leads to greatly improved performance over serial and OpenMP implementations, also improves on current state of the art gpsvInterleavedBatch which is part of the cuSPRASE library in CUDA.
 Publication:

Computer Physics Communications
 Pub Date:
 August 2019
 DOI:
 10.1016/j.cpc.2019.03.016
 arXiv:
 arXiv:1807.07382
 Bibcode:
 2019CoPhC.241..113G
 Keywords:

 CUDA;
 Pentadiagonal;
 Hyperdiffusion;
 CahnHilliard equation;
 C;
 C++;
 Matrix inversion;
 Physics  Computational Physics
 EPrint:
 doi:10.1016/j.cpc.2019.03.016