Search NASA⌕ Search

DOE OSTI · 2538250

Toward Automated Detection of Portability Bugs in Kokkos Parallel Programs

Abstract

Performance-portable programming frameworks provide abstractions for parallel execution to allow easily porting an application to multiple backend programming models, such as CUDA, HIP, and OpenMP. However, programs may still have portability bugs that manifest only on specific backends. Traditional testing is ineffective in discovering these bugs, as it would require concrete execution on all supported hardware configurations for a potentially infinite set of inputs. To mitigate this issue, we focused on a specific programming framework, Kokkos, and identified several categories of common portability bugs. We then developed Klokkos, a static analysis approach based on symbolic execution that can run on commodity hardware, before execution on supercomputers. As a proof-of-concept, we ran Klokkos on examples encoding the identified bugs. Our results show that Klokkos is effective, efficient, and precise: it detected all the considered bugs, quickly, and without any false positives. Although preliminary, our results motivate further research and development in this direction.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Kale, Vivek, Yan, Harun, Mukherjee, Shyamali, Mayo, Jackson, Teranishi, Keita, Rutledge, Richard, Orso, Alessandro. 2024-11-01. Toward Automated Detection of Portability Bugs in Kokkos Parallel Programs. https://doi.org/10.1109/scw63240.2024.00029

Cite the original work for its findings. Save a collection to share your selection of sources.