Reticle: a virtual machine for programming modern FPGAs
Luis Vega, Joseph McMahan, Adrian Sampson, Dan Grossman, Luis Ceze
Abstract
Modern field-programmable gate arrays (FPGAs) have recently powered high-profile efficiency gains in systems from datacenters to embedded devices by offering ensembles of heterogeneous, reconfigurable hardware units. Programming stacks for FPGAs, however, are stuck in the past—they are based on traditional hardware languages, which were appropriate when FPGAs were simple, homogeneous fabrics of basic programmable primitives. We describe Reticle, a new low-level abstraction for FPGA programming that, unlike existing languages, explicitly represents the special-purpose units available on a particular FPGA device. Reticle has two levels: a portable intermediate language and a target-specific assembly language. We show how to use a standard instruction selection approach to lower intermediate programs to assembly programs, which can be both faster and more effective than the complex metaheuristics that existing FPGA toolchains use. We use Reticle to implement linear algebra operators and coroutines and find that Reticle compilation runs up to 100 times faster than current approaches while producing comparable or better run-time and utilization.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 357a5d67-a84c-42f7-8e5e-6cdff06aa530Cited by top-tier papers5
- OverGen: Improving FPGA Usability through Domain-specific Overlay GenerationSihao Liu, Jian Weng, Dylan Kupsh, Atefeh Sohrabizadeh et al.MICRO 2022 · 32 citations
- Modular Hardware Design with Timeline TypesRachit Nigam, Pedro Henrique Azevedo de Amorim, Adrian SampsonPLDI 2023 · 16 citations
- FPGA Technology Mapping Using Sketch-Guided Program SynthesisGus Henry Smith, Benjamin Kushigian, Vishal Canumalla, Andrew Cheung et al.ASPLOS 2024 · 4 citations
- Assassyn: A Unified Abstraction for Architectural Simulation and ImplementationJian Weng, Boyang Han, Derui Gao, Ruijie Gao et al.ISCA 2025 · 1 citation
- Zoomie: A Software-like Debugging Tool for FPGAsTianrui Wei, Kevin Laeufer, Katie Lim, Jerry Zhao et al.ASPLOS 2024 · 1 citation
Builds on5
- Predictable accelerator design with time-sensitive affine typesRachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li et al.PLDI 2020 · 58 citations
- The essence of Bluespec: a core language for rule-based hardware designThomas Bourgeat, Clément Pit-Claudel, Adam Chlipala, ArvindPLDI 2020 · 55 citations
- A compiler infrastructure for accelerator generatorsRachit Nigam, Samuel Thomas, Zhijing Li, Adrian SampsonASPLOS 2021 · 54 citations
- Type-directed scheduling of streaming acceleratorsDavid Durst, Matthew Feldman, Dillon Huff, David Akeley et al.PLDI 2020 · 49 citations
- LLHD: a multi-level intermediate representation for hardware description languagesFabian Schuiki, Andreas Kurth, Tobias Grosser, Luca BeniniPLDI 2020 · 35 citations
Related papers
- HeteroRefactor: refactoring for heterogeneous computing with FPGAJason Lau, Aishwarya Sivaraman, Qian Zhang, Muhammad Ali Gulzar et al.ICSE 2020 · 12 citations
- When application-specific ISA meets FPGAs: a multi-layer virtualization framework for heterogeneous cloud FPGAsYue Zha, Jing LiASPLOS 2021 · 24 citations
- Coyote v2: Raising the Level of Abstraction for Data Center FPGAsBenjamin Ramhorst, Dario Korolija, Maximilian Jakob Heer, Jonas Dann et al.SOSP 2025 · 6 citations
- PLD: fast FPGA compilation to make reconfigurable acceleration compatible with modern incremental refinement software developmentYuanlong Xiao, Eric Micallef, Andrew Butt, Matthew Hofmann et al.ASPLOS 2022 · 17 citations
- Wavefront Threading Enables Effective High-Level SynthesisBlake Pelton, Adam Sapek, Ken Eguro, Daniel Lo et al.PLDI 2024 · 4 citations
