Lifting C semantics for dataflow optimization
METADATA ONLY
Loading...
Author / Producer
Date
2022-06
Publication Type
Conference Paper
ETH Bibliography
yes
Citations
Altmetric
METADATA ONLY
Data
Rights / License
Abstract
C is the lingua franca of programming and almost any device can be programmed using C. However, programming modern heterogeneous architectures such as multi-core CPUs and GPUs requires explicitly expressing parallelism as well as device-specific properties such as memory hierarchies. The resulting code is often hard to understand, debug, and modify for different architectures. We propose to lift C programs to a parametric dataflow representation that lends itself to static data-centric analysis and enables automatic high-performance code generation. We separate writing code from optimizing for different hardware: simple, portable C source code is used to generate efficient specialized versions with a click of a button. Our approach can identify parallelism when no other compiler can, and outperforms a bespoke parallelized version of a scientific proxy application by up to 21%.
Permanent link
Publication status
published
External links
Editor
Book title
ICS '22: Proceedings of the 36th ACM International Conference on Supercomputing
Journal / series
Volume
Pages / Article No.
17
Publisher
Association for Computing Machinery
Event
36th ACM International Conference on Supercomputing (ICS 2022)
Edition / version
Methods
Software
Geographic location
Date collected
Date created
Subject
Parallelism; Dataflow analysis; Automatic parallelization
Organisational unit
03950 - Hoefler, Torsten / Hoefler, Torsten
Notes
Funding
101034126 - Pilot using Independent Local & Open Technologies (EC)
101002047 - Productive Spatial Accelerator Programming (EC)
955776 - Network Solution for Exascale Architectures (EC)
955606 - DEEP- Software for Exascale Archtiectures (EC)
101002047 - Productive Spatial Accelerator Programming (EC)
955776 - Network Solution for Exascale Architectures (EC)
955606 - DEEP- Software for Exascale Archtiectures (EC)