48. Lightweight, Reusable Models for Dynamically Tuning Data-Dependent Code
Authors
Event Type
Poster
LocationLower Lobby Concourse
DescriptionIncreasing architectural diversity has made performance portability extremely important for parallel simulation codes. Emerging C++ frameworks like RAJA and Kokkos allow developers to write kernels that can be tuned for different architectures at compile time. However, production codes use adaptive techniques like AMR, and a code's behavior depends not only on the host architecture, but also on the input problem and dynamic factors like run-time adaptation. Existing auto-tuning approaches can handle slowly evolving applications effectively, but make decisions too slowly to be executed each time control passes over a loop. We have developed Apollo, an auto-tuning extension for RAJA that uses pre-trained decision models to dynamically tune data-dependent code at runtime, with auto-generated decision models being evaluated before each kernel. We apply Apollo to applications ranging from simple hydrodynamics benchmarks to a production multi-physics code, and show that it can achieve speedups from 1.1x to 4.8x, depending on the application.
Archive











