Understanding Accelerator Compilers via Performance Profiling
Ayaka Yorihiro, Griffin Berlstein, Pedro Pontes Garc\'ia, Kevin Laeufer, Adrian Sampson

TL;DR
This paper introduces Petal, a cycle-level profiling tool for ADL compilers, enabling developers to understand and optimize performance by analyzing trace data and identifying bottlenecks in hardware accelerator designs.
Contribution
Petal provides a novel cycle-level analysis method for ADL compiler performance, linking trace events to high-level constructs to aid optimization and understanding.
Findings
Petal successfully identifies performance bottlenecks in accelerator designs.
Using Petal, developers achieved a 46.9% reduction in total cycles for an application.
Cycle-level profiling guides manual optimizations beyond automatic compiler improvements.
Abstract
Accelerator design languages (ADLs), high-level languages that compile to hardware units, help domain experts quickly design efficient application-specific hardware. ADL compilers optimize datapaths and convert software-like control flow constructs into control paths. Such compilers are necessarily complex and often unpredictable: they must bridge the wide semantic gap between high-level semantics and cycle-level schedules, and they typically rely on advanced heuristics to optimize circuits. The resulting performance can be difficult to control, requiring guesswork to find and resolve performance problems in the generated hardware. We conjecture that ADL compilers will never be perfect: some performance unpredictability is endemic to the problem they solve. In lieu of compiler perfection, we argue for compiler understanding tools that give ADL programmers insight into how the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Logic, programming, and type systems
