From Domain-Specific Languages to Memory-Optimized Accelerators for Fluid Dynamics
arXiv:2108.03326 · doi:10.1109/Cluster48925.2021.00112
Abstract
Many applications are increasingly requiring numerical simulations for solving complex problems. Most of these numerical algorithms are massively parallel and often implemented on parallel high-performance computers. However, classic CPU-based platforms suffers due to the demand for higher resolutions and the exponential growth of data. FPGAs offer a powerful and flexible alternative that can host accelerators to complement such platforms. Developing such application-specific accelerators is still challenging because it is hard to provide efficient code for hardware synthesis. In this paper, we study the challenges of porting a numerical simulation kernel onto FPGA. We propose an automated tool flow from a domain-specific language (DSL) to generate accelerators for computational fluid dynamics on FPGA. Our DSL-based flow simplifies the exploration of parameters and constraints such as on-chip memory usage. We also propose a decoupled optimization of memory and logic resources, which allows us to better use the limited FPGA resources. In our preliminary evaluation, this enabled doubling the number of parallel kernels, increasing the accelerator speedup versus ARM execution from 7 to 12 times.
arXiv commentAccepted for presentation at the FPGA for HPC Workshop 2021
References in corpus (10)
- TensorFlow: A system for large-scale machine learning
- Tensor Comprehensions: Framework-Agnostic High-Performance Machine Learning Abstractions
- Survey of Machine Learning Accelerators
- Agile SoC Development with Open ESP
- TensorFlow Eager: A Multi-Stage, Python-Embedded DSL for Machine Learning
- ESP4ML: Platform-Based Design of Systems-on-Chip for Embedded Machine Learning
- Factorizing the factorization - a spectral-element solver for elliptic equations with linear operation count
- DSL-based Design Space Exploration for Temporal and Spatial Parallelism of Custom Stream Computing
- EVEREST: A design environment for extreme-scale big data analytics on heterogeneous platforms
- Tensor Processing Primitives: A Programming Abstraction for Efficiency and Portability in Deep Learning & HPC Workloads