RAJA Performance Suite — RAJAPerf 2024.07.0 documentation (original) (raw)

Motivation and Background

The RAJA Performance Suite is designed to explore performance of loop-based computational kernels found in HPC applications. Specifically, it is used to assess and monitor runtime performance of kernels implemented usingRAJA C++ performance portability abstractions. The Suite contains a variety of kernels implemented using common parallel programming models, such as OpenMP and CUDA. Some important terminology used in the Suite implementation and discussion includes:

The kernels in the Suite originate from various HPC benchmark suites and applications. For example, the “Stream” group contains kernels from the Babel Stream benchmark, the “Apps” group contains kernels extracted from real scientific computing applications, and so forth. Each kernel in the Suite appears in multiple RAJA and non-RAJA (i.e., baseline) variants that use parallel programming models supported by RAJA. Some kernels support multiple tunings of a variant to explore the performance implications of options that a programming model supports.

Note

A kernel does not need to provide all possible variants in the Suite. Tyoically, each kernel provides only the subset of variants that makes sense for the kernel.

The Suite can be run as a single process or with multiple processes when configured with MPI support. When running with multiple MPI processes, the same code is executed on each rank. Ranks are synchronized before and after each kernel executes to gather timing data to rank zero. Running with multiple MPI processes helps the Suite generate performance data that is more realistic for HPC applications than performance data generated running with a single process. For example, running sequentially with one MPI rank per core vs running sequentially with a single process yields different performance results on most multi-core CPUs because bandwidth resources are exercised differently. Similarly, for GPU systems where multiple MPI ranks are necessary to fully utilize GPU compute resources.

More information about running the Suite for different types of performance studies is provided in theRAJA Performance Suite User Guide

Git Repository and Issue Tracking

The main interaction hub for the RAJA Performance Suite is itsGitHub project. There you will find the Git source code repository, issue tracker, release history, and other information about the project.

Communicating with the RAJA Team

If you have questions, find a bug, have ideas about expanding the functionality or applicability, or wish to contribute to RAJA Performance Suite development, please do not hesitate to contact us. We are always interested in improving the Suite and exploring new ways to use it.

The best way to communicate with us is via our email list: raja-dev@llnl.gov

RAJA Performance Suite User and Developer Documentation

Please see RAJA Performance Suite Copyright and License Information.