论文标题
Anyhls:高级合成和部分评估
AnyHLS: High-Level Synthesis with Partial Evaluation
论文作者
论文摘要
FPGA在低功率和高吞吐量计算方面表现出色,但它们在编程方面具有挑战性。传统上,开发人员依靠硬件说明语言(例如Verilog或VHDL)在寄存器转移级别指定硬件行为。高级合成(HLS)提高了抽象水平,但仍然需要FPGA设计知识。程序员通常编写通用的C/C ++程序来定义应用程序的硬件体系结构。但是,每个硬件供应商都使用其自己的特定于供应商的布拉格斯(Pragmas)来扩展自己的C方言。这样可以防止不同供应商之间的可移植性。此外,布拉格马斯不是该语言的一流公民。这使得很难以模块化的方式或设计适当的抽象。在本文中,我们提出了Anyhls,这是一种以模块化和抽象的方式合成FPGA设计的方法。 AnyHLS能够通过诉诸于编程语言功能(例如类型和高阶功能)来提高现有HLS工具的抽象水平:它依赖于部分评估来专业化并根据抽象库优化用户应用程序。然后,为Intel和Xilinx FPGA生成了特定于供应商的HLS代码。可移植性是通过避免在源代码上避免任何特定于供应商的布拉格斯的可移植性。为了验证生产率可实现的提高,将引入图像处理领域的库作为案例研究,并将其合成结果与该领域的几种最新域特异性语言(DSL)方法进行比较。
FPGAs excel in low power and high throughput computations, but they are challenging to program. Traditionally, developers rely on hardware description languages like Verilog or VHDL to specify the hardware behavior at the register-transfer level. High-Level Synthesis (HLS) raises the level of abstraction, but still requires FPGA design knowledge. Programmers usually write pragma-annotated C/C++ programs to define the hardware architecture of an application. However, each hardware vendor extends its own C dialect using its own vendor-specific set of pragmas. This prevents portability across different vendors. Furthermore, pragmas are not first-class citizens in the language. This makes it hard to use them in a modular way or design proper abstractions. In this paper, we present AnyHLS, an approach to synthesize FPGA designs in a modular and abstract way. AnyHLS is able to raise the abstraction level of existing HLS tools by resorting to programming language features such as types and higher-order functions as follows: It relies on partial evaluation to specialize and to optimize the user application based on a library of abstractions. Then, vendor-specific HLS code is generated for Intel and Xilinx FPGAs. Portability is obtained by avoiding any vendor-specific pragmas at the source code. In order to validate achievable gains in productivity, a library for the domain of image processing is introduced as a case study, and its synthesis results are compared with several state-of-theart Domain-Specific Language (DSL) approaches for this domain.