Saved in:
Bibliographic Details
Main Authors: Arbore, Russel, Councilman, Aaron, Routh, Xavier, Ziegler, Ryan, Rathi, Praneet, Adve, Vikram
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2503.10855
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916652368527360
author Arbore, Russel
Councilman, Aaron
Routh, Xavier
Ziegler, Ryan
Rathi, Praneet
Adve, Vikram
author_facet Arbore, Russel
Councilman, Aaron
Routh, Xavier
Ziegler, Ryan
Rathi, Praneet
Adve, Vikram
contents Modern computing systems increasingly rely on composing heterogeneous devices to improve performance and efficiency. Programming these systems is often unproductive: algorithm implementations must be coupled to system-specific logic, including device-specific optimizations, partitioning, and inter-device communication and synchronization, which requires developing different programs for different system configurations. We propose the Juno language, which represents general purpose applications in an imperative form that can be transformed into parallel, optimized, system-specific code using an expressive and granular imperative scheduling language. We also introduce the Hercules compiler, which uses a novel intermediate representation to represent general and device-specific parallel code in a manner that is easy to analyze and manipulate using schedules. Our system achieves competitive performance with hand-optimized device-specific code (geomean speedups of $1.25\times$ and $1.48\times$ on the CPU and GPU) and significantly outperforms a prior general purpose heterogeneous programming system (geomean speedups of $9.31\times$ and $16.18\times$ on the CPU and GPU).
format Preprint
id arxiv_https___arxiv_org_abs_2503_10855
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Hercules: A Compiler for Productive Programming of Heterogeneous Systems
Arbore, Russel
Councilman, Aaron
Routh, Xavier
Ziegler, Ryan
Rathi, Praneet
Adve, Vikram
Programming Languages
Modern computing systems increasingly rely on composing heterogeneous devices to improve performance and efficiency. Programming these systems is often unproductive: algorithm implementations must be coupled to system-specific logic, including device-specific optimizations, partitioning, and inter-device communication and synchronization, which requires developing different programs for different system configurations. We propose the Juno language, which represents general purpose applications in an imperative form that can be transformed into parallel, optimized, system-specific code using an expressive and granular imperative scheduling language. We also introduce the Hercules compiler, which uses a novel intermediate representation to represent general and device-specific parallel code in a manner that is easy to analyze and manipulate using schedules. Our system achieves competitive performance with hand-optimized device-specific code (geomean speedups of $1.25\times$ and $1.48\times$ on the CPU and GPU) and significantly outperforms a prior general purpose heterogeneous programming system (geomean speedups of $9.31\times$ and $16.18\times$ on the CPU and GPU).
title Hercules: A Compiler for Productive Programming of Heterogeneous Systems
topic Programming Languages
url https://arxiv.org/abs/2503.10855