Automatic Creation of High-Bandwidth Memory Architectures from Domain-Specific Languages: The Case of Computational Fluid Dynamics
Stephanie Soldavini, Karl F. A. Friebel, Mattia Tibaldi, Gerald, Hempel, Jeronimo Castrillon, Christian Pilato

TL;DR
This paper presents an automated tool flow that translates domain-specific tensor expressions into high-performance FPGA accelerators with high-bandwidth memory, specifically optimized for computational fluid dynamics applications.
Contribution
It introduces an MLIR-based compiler and hardware generation flow that automates the creation of FPGA accelerators with specialized memory architectures from high-level tensor specifications.
Findings
Achieved up to 103 GFLOPS performance on CFD applications.
FPGA implementation is up to 25x more energy-efficient than CPU solutions.
Successfully generated systems with efficient data movement and high parallelism.
Abstract
Numerical simulations can help solve complex problems. Most of these algorithms are massively parallel and thus good candidates for FPGA acceleration thanks to spatial parallelism. Modern FPGA devices can leverage high-bandwidth memory technologies, but when applications are memory-bound designers must craft advanced communication and memory architectures for efficient data movement and on-chip storage. This development process requires hardware design skills that are uncommon in domain-specific experts. In this paper, we propose an automated tool flow from a domain-specific language (DSL) for tensor expressions to generate massively-parallel accelerators on HBM-equipped FPGAs. Designers can use this flow to integrate and evaluate various compiler or hardware optimizations. We use computational fluid dynamics (CFD) as a paradigmatic example. Our flow starts from the high-level…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
