Engineering Papers⌕ Search

DOE OSTI · 1832700

IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems

Abstract

Across embedded, mobile, enterprise, and HPC systems, computer architectures are becoming more heterogeneous and complex. This complexity is causing a crisis in programming systems and performance portability. Several programming systems are working to address these challenges, but the increasing architectural diversity is forcing software stacks and applications to specialize for each architecture. As we show, all of these approaches critically depend on their runtime system for discovery, execution, scheduling, and data orchestration. To address this challenge, we believe that a more agile and proactive runtime system is essential to increase performance portability and improve user productivity. In this regard, we have designed and implemented IRIS: a portable runtime system exploiting multiple heterogeneous programming systems. IRIS can discover available resources, manage multiple diverse programming systems (e.g., CUDA, Hexagon, HIP, Level Zero, OpenCL, OpenMP) simultaneously in the same execution, respect data dependencies, orchestrate data movement proactively, and provide for user-configurable scheduling. Our evaluation on three architectures, ranging from Qualcomm Snapdragon to a Summit supercomputer node, shows that IRIS improves portability across a wide range of diverse heterogeneous architectures with negligible overhead.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Kim, Jungwon, Lee, Seyong, Johnston, Beau, Vetter, Jeffrey. 2021-09-01. IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems. https://doi.org/10.1109/hpec49654.2021.9622873

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