SuSy: a programming model for productive construction of high-performance systolic arrays on FPGAs
SuSy: a programming model for productive construction of high-performance systolic arrays on FPGAs
复制标题
SuSy:用于在 FPGA 上高效构建高性能脉动阵列的编程模型
DOI:
10.1145/3400302.3415644
复制
发表时间:
2020
期刊:
影响因子:
--
通讯作者:
Liang, Yun
中科院分区:
文献类型:
--
作者:
Lai, Yi-Hsiang;Rong, Hongbo;Zheng, Size;Zhang, Weihao;Cui, Xiuping;Jia, Yunshan;Wang, Jie;Sullivan, Brendan;Zhang, Zhiru;Liang, Yun
Systolic algorithms are one of the killer applications on spatial architectures such as FPGAs and CGRAs. However, it requires a tremendous amount of human effort to design and implement a high-performance systolic array for a given algorithm using the traditional RTL-based methodology. On the other hand, existing high-level synthesis (HLS) tools either (1) force the programmers to do "micro-coding" where too many optimizations must be carried out through tedious code restructuring and insertion of vendor-specific pragmas, or (2) give them too little control to influence a push-button compilation flow to achieve high quality of results.To tackle these challenges, we introduce SuSy, a programming framework composed of a domain-specific language (DSL) and a compilation flow that enables programmers to productively build high-performance systolic arrays on FPGAs. With SuSy, programmers express the design functionality in the form of uniform recurrence equations (UREs), which can describe algorithms from a wide spectrum of applications as long as the underlying computation has a uniform dependence structure. The URE description in SuSy is followed by a set of decoupled spatial mapping primitives that specify how to map the equations to a spatial architecture. More concretely, programmers can apply space-time transformations and several other memory and I/O optimizations to build a highly efficient systolic architecture productively. Experimental results show that SuSy can describe various algorithms with UREs and generate high-performance systolic arrays by spatial optimizations. For instance, the SGEMM benchmark written in SuSy can approach the performance of the manual design optimized by experts, while using 30× fewer lines of code.