Automatic Generation of Vectorizing Compilers for Customizable Digital Signal Processors
Open Access
- 17 April 2024
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 19-34
Abstract
Embedded applications extract the best power-performance trade-off from digital signal processors (DSPs) by making extensive use of vectorized execution. Rather than handwriting the many customized kernels these applications use, DSP engineers rely on auto-vectorizing compilers to quickly produce effective code. Building these compilers is a large and error-prone investment, and each new DSP architecture or application-specific ISA customization must repeat this effort to derive a new high-performance compiler. We present Isaria, a framework for automatically generating vectorizing compilers for DSP architectures. Isaria uses equality saturation to search for vectorized DSP code using a system of rewrite rules. Rather than hand-crafting these rules, Isaria automatically synthesizes sound rewrite rules from an ISA specification, discovers phase structure within these rules that improve compilation performance, and schedules their application at compile time while pruning intermediate states of the search. We use Isaria to generate a compiler for an industrial DSP architecture, and show that the resulting kernels outperform existing DSP libraries by up to 6.9× and are competitive with those generated by expert-built compilers. We also demonstrate how Isaria can speed up exploration of new ISA customizations by automatically generating a high-quality vectorizing compiler.Keywords
Funding Information
- NSF (2124044)
This publication has 32 references indexed in Scilit:
- Syntax-Guided Rewrite Rule Enumeration for SMT Solvers2019
- The ARM Scalable Vector ExtensionIEEE Micro, 2017
- SWAPPER: A framework for automatic generation of formula simplifiers based on conditional rewrite rules2016
- Finding and understanding bugs in C compilersACM SIGPLAN Notices, 2011
- CVC42011
- Polyhedral-Model Guided Loop-Nest Auto-Vectorization2009
- Equality saturationACM SIGPLAN Notices, 2009
- Auto-vectorization of interleaved data for SIMD2006
- SPIRAL: Code Generation for DSP TransformsProceedings of the IEEE, 2005
- Complexity of matching problemsJournal of Symbolic Computation, 1987