DeepAI AI Chat
Log In Sign Up

Persistent Kernels for Iterative Memory-bound GPU Applications

by   Lingqi Zhang, et al.
Association for Computing Machinery
Shenzhen Institute of Advanced Technology, Chinese Academy of Sciences
National Institute of Advanced Industrial Science and Technology
Tokyo Institute of Technology
Oak Ridge National Laboratory

Iterative memory-bound solvers commonly occur in HPC codes. Typical GPU implementations have a loop on the host side that invokes the GPU kernel as much as time/algorithm steps there are. The termination of each kernel implicitly acts as the barrier required after advancing the solution every time step. We propose a scheme for running memory-bound iterative GPU kernels: PERsistent KernelS (PERKS). In this scheme the time loop is moved inside a persistent kernel, and device-wide barriers are used for synchronization. We then reduce the traffic to device memory by caching a subset of the output in each time step in registers and shared memory to be used as input for the following time step. PERKS can be generalized to any iterative solver: they are largely independent of the solver's implementation. We explain the design principle of PERKS and demonstrate the effectiveness of PERKS for a wide range of iterative 2D/3D stencil benchmarks (geometric mean speedup of 2.29x in small domains and 1.53x in large domains), and a Krylov subspace solver (geometric mean speedup of 4.67x in smaller SpMV datasets from SuiteSparse and 1.39x in larger SpMV datasets, for conjugate gradient).


page 1

page 2

page 3

page 4


Revisiting Temporal Blocking Stencil Optimizations

Iterative stencils are used widely across the spectrum of High Performan...

Explicit caching HYB: a new high-performance SpMV framework on GPGPU

Sparse Matrix-Vector Multiplication (SpMV) is a critical operation for t...

Accelerating wave-propagation algorithms with adaptive mesh refinement using the Graphics Processing Unit (GPU)

Clawpack is a library for solving nonlinear hyperbolic partial different...

SParSH-AMG: A library for hybrid CPU-GPU algebraic multigrid and preconditioned iterative methods

Hybrid CPU-GPU algorithms for Algebraic Multigrid methods (AMG) to effic...

A Versatile Software Systolic Execution Model for GPU Memory-Bound Kernels

This paper proposes a versatile high-performance execution model, inspir...

Checkpointing with cp: the POSIX Shared Memory System

We present the checkpointing scheme of Abacus, an N-body simulation code...