Proceedings of the ACM on Programming Languages· 2026Q1
Understanding Accelerator Compilers via Performance Profiling
- 0citations
- Q1SCImago
- 2026year
Short summary
Petal, a new cycle-level profiler for ADLs compiling to Calyx IL, maps simulation traces back to high-level code constructs, revealing compiler performance decisions and enabling manual optimizations.
AI-generated from the title and abstract; the full text is not read.
Key points
- Petal is a cycle-level profiler for ADLs that compile to the Calyx intermediate language.
- It instruments Calyx code, analyzes register-transfer-level simulation traces, and maps events to high-level constructs.
- Petal generates call trees representing active events per cycle and ADL-level profiles using compiler metadata.
- Case studies demonstrate Petal's ability to identify performance issues and guide manual optimizations, reducing cycles by up to 46.9%.
AI-generated from the title and abstract; the full text is not read.
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 compiler’s decisions affect performance. We introduce Petal, a cycle-level profiler for ADLs that compile to the Calyx intermediate language (IL). Petal instruments the Calyx code with probes and then analyzes the trace from a register-transfer-level simulation. It then maps the events in the trace back to high-level control constructs in the Calyx code to determine when each construct was active. Petal processes that information into a trace of call trees , each representing active events in a specific cycle and their relationships. Lastly, Petal uses metadata generated by the ADL compiler to construct an ADL-level profile. Using case studies, we demonstrate that Petal’s cycle-level profiles can identify performance problems in existing accelerator designs. We show that these insights can also guide developers toward optimizations that the compiler was unable to perform automatically, including a reduction by 46.9% of total cycles for one application.
The authors' abstract, as published at the source. Proceedings of the ACM on Programming Languages, 2026 · DOI ↗
Continue with a free account
Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.
Continue free on the webSign in with Google or Apple; no card needed. You come back to this paper.
On your phone:
Field: Hardware and Architecture
Hardware and ArchitectureComputer Science