Reference. Stepwise Debugging for Hardware Accelerators
Cite
Cited by (1)
Unifying Static and Dynamic Intermediate Languages for Accelerator Generators kim-2024-unifying
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.
Cites 43 works (2 here)
With notes (2)
A compiler infrastructure for accelerator generators nigam-2021-a
Predictable accelerator design with time-sensitive affine types nigam-2020-predictable
External (41)
- Debugging in the Brave New World of Reconfigurable Hardware (2022)
- Bringing source-level debugging frameworks to hardware generators (2022)
- An Empirical Study of the Reliability of High-Level Synthesis Tools (2021)
- Effective simulation and debugging for a high-level hardware language using software compilers (2021)
- GDB: The GNU Project Debugger (2021)
- Intel High Level Synthesis Compiler (2021)
- Intel Signal Tap II (2021)
- PolyBench/C: The Polyhedral Benchmark Suite (2021)
- Verilator array out of bounds behavior (2021)
- ChipScope Integrated Logic Analyzer (2021)
- StateMover: Combining Simulation and Hardware Execution for Efficient FPGA Debugging (2020)
- Efficiently Exploiting Low Activity Factors to Accelerate RTL Simulation (2020)
- The Essence of Bluespec: A Core Language for Rule-Based Hardware Design (2020)
- Flash: Fast, parallel, and accurate simulator for HLS (2020)
- Type-Directed Scheduling of Streaming Accelerators (2020)
- HeteroCL: A Multi-Paradigm Programming Infrastructure for Software-Defined Reconfigurable Computing (2019)
- Relay: A high-level compiler for deep learning (2019)
- Just-In-Time Compilation for Verilog (2019)
- Invoking and Linking Generators from Multiple Hardware Languages using CoreIR (2018)
- Spatial: a language and compiler for application accelerators (2018)
- TVM: An automated end-to-end optimizing compiler for deep learning (2018)
- PolySA: Polyhedral-Based Systolic Array Auto-Compilation (2018)
- Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations (2017)
- Vivado Design Suite User Guide: High-Level Synthesis (2017)
- Vivado Design Suite User Guide: Synthesis (2017)
- LegUp High-Level Synthesis: Debugging (2015)
- Effective FPGA debug for high-level synthesis generated circuits (2014)
- Source-level debugging for FPGA high-level synthesis (2014)
- Chisel: constructing hardware in a Scala embedded language (2012)
- IEEE Standard for Verilog Hardware Description Language (2005)
- LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation (2004)
- Bluespec System Verilog: Efficient, correct RTL from high level specifications (2004)
- SystemVerilog 3.1a Language Reference Manual (2004)
- The Dangers of Living with an X (bugs hidden in your Verilog) (2003)
- Source level debugger for the Sea Cucumber synthesizing compiler (2003)
- Scan-chain based watch-points for efficient run-time debugging and verification of FPGA designs (2003)
- Weak Ordering - a New Definition (1990)
- Backpropagation Applied to Handwritten Zip Code Recognition (1989)
- Hardware logic simulation by compilation (1988)
- HSS–a high-speed simulator (1987)
- SSIM: a software levelized compiled-code simulator (1987)