arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2104.04741cs.PL
收藏

通过Lucent实现FPGA编程的专用机器结构

Application specific dataflow machine construction for programming FPGAs via Lucent

Nick Brown

摘要:

现场可编程门阵列(FPGA)具有加速特定HPC代码的潜力。然而,即使随着高级综合(HLS)的出现,FPGA程序员也可以用C或C++编写代码,对此类器件进行编程仍然需要相当多的专业知识。这在很大程度上是因为这些架构是建立在CPU或GPU的Von Neumann抽象之上的。因此,通过命令式语言对FPGA进行编程并不是最佳的,并且可能会导致底层架构上的算法的第一个版本和最终版本之间存在非常显著的性能差异,其中步骤通常不明显,并且需要相当多的专业知识。在这份立场文件中,我们认为,应利用建立在Cumblow原则基础上的语言来实现FPGA的快速构造代码,这类似于程序员采用开发专门用于其应用的定制Cumblow机器的抽象。这是我们的信念,可以学到很多东西,从一代的编程语言,在20世纪70年代和80年代流行的通用编程机器,我们介绍了Lucent这是一个现代的衍生物的Lucid,并作为一个工具来探索这一假设。朗讯的理念是通过为开发人员提供最合适的语言级抽象,为FPGA提供高程序员生产力和性能。Lucent的重点是非常支持HPC内核的加速,而不是嵌入式电子和电路级,我们通过示例简要概述了该语言的驱动。

英文摘要:

Field Programmable Gate Arrays (FPGAs) have the potential to accelerate specific HPC codes. However even with the advent of High Level Synthesis (HLS), which enables FPGA programmers to write code in C or C++, programming such devices still requires considerable expertise. Much of this is due to the fact that these architectures are founded on dataflow rather than the Von Neumann abstraction of CPUs or GPUs. Thus programming FPGAs via imperative languages is not optimal and can result in very significant performance differences between the first and final versions of algorithms on dataflow architectures with the steps in between often not obvious and requiring considerable expertise. In this position paper we argue that languages built upon dataflow principals should be exploited to enable fast by construction codes for FPGAs, and this is akin to the programmer adopting the abstraction of developing a bespoke dataflow machine specialised for their application. It is our belief that much can be learnt from the generation of dataflow languages that gained popularity in the 1970s and 1980s around programming general purpose dataflow machines, and we introduce Lucent which is a modern derivative of Lucid, and used as a vehicle to explore this hypothesis. The idea behind Lucent is to provide high programmer productivity and performance for FPGAs by giving developers the most suitable language level abstractions. The focus of Lucent is very much to support the acceleration of HPC kernels, rather than the embedded electronics and circuit level, and we provide a brief overview of the language driven by examples.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑