Workshop: RAJA: Portable Performance for Large-Scale Scientific Applications
Abstract: Modern high-performance computing systems are diverse, with hardware designs ranging from homogeneous multi-core CPUs to GPU or FPGA accelerated systems. Achieving desirable application performance often requires choosing a programming model best suited to a particular platform. For large codes used daily in production that are under continual development, architecture-specific ports are untenable. Maintainability requires single-source application code that is performance portable across a range of architectures and programming models.
In this paper, we describe RAJA, a portability layer that enables C++ applications to leverage various programming models, and thus architectures - with a single-source codebase. We describe preliminary results using RAJA in three large production codes at Lawrence Livermore National Laboratory, observing 17x, 13x and 12x speedup on GPU-only over CPU-only nodes with single-source application code in each case.