Reference. Unifying Static and Dynamic Intermediate Languages for Accelerator Generators

Compilers for accelerator design languages (ADLs) translate high-level languages into application-specific hardware. ADL compilers rely on a hardware control interface to compose hardware units. There are two choices: static control, which relies on cycle-level timing; or dynamic control, which uses explicit signalling to avoid depending on timing details. Static control is efficient but brittle; dynamic control incurs hardware costs to support compositional reasoning. Piezo is an ADL compiler that unifies static and dynamic control in a single intermediate language (IL). Its key insight is that the IL’s static fragment is a refinement of its dynamic fragment: static code admits a subset of the run-time behaviors of the dynamic equivalent. Piezo can optimize code by combining facts from static and dynamic submodules, and it opportunistically converts code from dynamic to static control styles. We implement Piezo as an extension to an existing dynamic ADL compiler, Calyx. We use Piezo to implement a frontend for an existing ADL, a systolic array generator, and a packet-scheduling hardware generator to demonstrate its optimizations and the static–dynamic interactions it enables.

Cite

Cite as @kim-2024-unifying (helia, typst) · \cite{kim-2024-unifying} (LaTeX)
BibTeX
bibtex · 1 line
@article{kim-2024-unifying, title={Unifying Static and Dynamic Intermediate Languages for Accelerator Generators}, volume={8}, ISSN={2475-1421}, url={http://dx.doi.org/10.1145/3689790}, DOI={10.1145/3689790}, number={OOPSLA2}, journal={Proceedings of the ACM on Programming Languages}, publisher={Association for Computing Machinery (ACM)}, author={Kim, Caleb and Li, Pai and Mohan, Anshuman and Butt, Andrew and Sampson, Adrian and Nigam, Rachit}, year={2024}, month=Oct, pages={2242–2267} }
hayagriva YAML (typst)
yaml · 22 lines
kim-2024-unifying:
  type: article
  title: Unifying Static and Dynamic Intermediate Languages for Accelerator Generators
  author:
  - Kim, Caleb
  - Li, Pai
  - Mohan, Anshuman
  - Butt, Andrew
  - Sampson, Adrian
  - Nigam, Rachit
  date: 2024-10
  page-range: 2242-2267
  url: http://dx.doi.org/10.1145/3689790
  serial-number:
    doi: 10.1145/3689790
    issn: 2475-1421
  parent:
    type: periodical
    title: Proceedings of the ACM on Programming Languages
    publisher: Association for Computing Machinery (ACM)
    issue: OOPSLA2
    volume: 8
Cites 47 works (4 here)
With notes (4)

Stepwise Debugging for Hardware Accelerators berlstein-2023-stepwise

DOI

Modular Hardware Design with Timeline Types nigam_amorim_sampson_2023

Modular design is a key challenge for enabling large-scale reuse of hardware modules. Unlike software, however, hardware designs correspond to physical circuits and inherit constraints from them. Timing constraints—which cycle a signal arrives, when an input is read—and structural constraints—how often a multiplier accepts new inputs—are fundamental to hardware interfaces. Existing hardware design languages do not provide a way to encode these constraints; a user must read documentation, build scripts, or in the worst case, a module’s implementation to understand how to use it. We present Filament, a language for modular hardware design that supports the specification and enforcement of timing and structural constraints for statically scheduled pipelines. Filament uses timeline types, which describe the intervals of clock-cycle time when a given signal is available or required. Filament enables safe composition of hardware modules, ensures that the resulting designs are correctly pipelined, and predictably lowers them to efficient hardware.
PDF · DOI · pldb

A compiler infrastructure for accelerator generators nigam-2021-a

DOI · arXiv

Predictable accelerator design with time-sensitive affine types nigam-2020-predictable

PDF · DOI · arXiv · pldb
External (43)
kim-2024-unifying reference entries/refs/kim-2024-unifying/kim-2024-unifying.hel