Accelerated Computing research group
Lightning: Scaling the GPU Programming Model Beyond a Single GPU

IPDPS 2022 - I presented my paper on Lightning, a programming model that allows you to create applications for GPU clusters in way that is very similar to developing applications for a single GPU. This is achieved by exploiting the inherent parallelism that is already present in most GPU applications, the fact that thread blocks are working largely independently. This technique allows Lightning to divide the computations over multiple GPUs. Of course, all the input and output data of all computations also needs to be split, replicated, and/or transferred to ensure the application still produces the correct output.


The GPU programming model is primarily aimed at the development of applications that run one GPU. However, this limits the scalability of GPU code to the capabilities of a single GPU in terms of compute power and memory capacity. To scale GPU applications further, a great engineering effort is typically required: work and data must be divided over multiple GPUs by hand, possibly in multiple nodes, and data must be manually spilled from GPU memory to higher-level memories. We present Lightning: a framework that follows the common GPU programming paradigm but enables scaling to large problems with ease. Lightning supports multi-GPU execution of GPU kernels, even across multiple nodes, and seamlessly spills data to higher-level memories (main memory and disk). Existing CUDA kernels can easily be adapted for use in Lightning, with data access annotations on these kernels allowing Lightning to infer their data requirements and the dependencies between subsequent kernel launches. Lightning efficiently distributes the work/data across GPUs and maximizes efficiency by overlapping scheduling, data movement, and kernel execution when possible. We present the design and implementation of Lightning, as well as experimental results on up to 32 GPUs for eight benchmarks and one real-world application. Evaluation shows excellent performance and scalability, such as a speedup of 57.2x over the CPU using Lighting with 16 GPUs over 4 nodes and 80 GB of data, far beyond the memory capacity of one GPU.


Lightning: Scaling the GPU Programming Model Beyond a Single GPU
S. Heldens, P. Hijma, B. van Werkhoven, J. Maassen, R. V. van Nieuwpoort
International Parallel and Distributed Processing Symposium (IPDPS) 2022

Written by

Stijn Heldens

I'm a Dutch computer scientist, currently working as a Research Software Engineer (RSE) at the Netherlands eScience Center and also serving as a visiting researcher at the University of Amsterdam. I enjoy scientific research where my interests lie in high-performance computing, with a particular focus on parallel algorithms, distributed systems, programming languages/compilers, and GPU programming.