pith. sign in

arxiv: 2112.11879 · v3 · pith:FVSIVUBTnew · submitted 2021-12-22 · 💻 cs.PL · cs.DC· cs.PF

Lifting C Semantics for Dataflow Optimization

classification 💻 cs.PL cs.DCcs.PF
keywords codearchitecturesdataflowdifferentparallelismprogrammingalmostanalysis
0
0 comments X
read the original abstract

C is the lingua franca of programming and almost any device can be programmed using C. However, programming mod-ern 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%.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.