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

Revet:面向数据流线程的语言与编译器

Revet: A Language and Compiler for Dataflow Threads

Alexander Rucker, Shiv Sundram, Coleman Smith, Matthew Vilim, Raghu Prabhakar, Fredrik Kjolstad, Kunle Olukotun

AI总结:

针对现有vRDA编程工具无法向量化数据相关控制流、通用性不足的问题,提出兼具线程编程通用性与vRDA高效性的Revet系统,其基于MLIR的编译器可将线程化应用映射到数据流后端,性能较GPU提升3.8倍。

摘要:

空间数据流架构(如可重构数据流加速器,RDA)相比CPU和GPU可提供高得多的性能与能效。尤其是近期文献中的向量化可重构数据流加速器(vRDA),是通过向量化提升数据流架构效率的一类设计方向。目前,vRDA只能通过硬编码内核或Spatial这类MapReduce语言来使用,而这类语言无法对数据相关的控制流进行向量化。相比之下,CPU和GPU可使用通用线程抽象进行编程。\n理想的组合是兼具线程编程模型的通用性与vRDA的高效执行模型。我们提出Revet:一种编程模型、编译器与执行模型,可让线程化应用在vRDA上高效运行。Revet编程语言使用线程,相比Spatial的并行模式能支持更广泛的应用,我们基于MLIR的编译器将该语言 lowered 到操作流张量的通用数据流后端。最后我们表明,将线程映射到数据流的性能比当前线程加速器的最优水平GPU高出3.8倍。

英文摘要:

Spatial dataflow architectures such as reconfigurable dataflow accelerators (RDA) can provide much higher performance and efficiency than CPUs and GPUs. In particular, vectorized reconfigurable dataflow accelerators (vRDA) in recent literature represent a design point that enhances the efficiency of dataflow architectures with vectorization. Today, vRDAs can be exploited using either hardcoded kernels or MapReduce languages like Spatial, which cannot vectorize data-dependent control flow. In contrast, CPUs and GPUs can be programmed using general-purpose threaded abstractions. The ideal combination would be the generality of a threaded programming model coupled with the efficient execution model of a vRDA. We introduce Revet: a programming model, compiler, and execution model that lets threaded applications run efficiently on vRDAs. The Revet programming language uses threads to support a broader range of applications than Spatial's parallel patterns, and our MLIR-based compiler lowers this language to a generic dataflow backend that operates on streaming tensors. Finally, we show that mapping threads to dataflow outperforms GPUs, the current state-of-the-art for threaded accelerators, by 3.8x.

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

↑