时间矢量化:一种更有效的自动多泵方法
Temporal Vectorization: A Compiler Approach to Automatic Multi-Pumping
摘要:
多泵浦资源共享技术可以通过允许硬件组件以比周围系统更高的时钟频率操作来克服单时钟FPGA设计中常见的限制。然而,这种优化不能用高抽象级别(如HLS)来表达,需要使用手动优化的RTL。在本文中,我们将展示如何利用多个时钟域的可重构设备上的计算子域,通过对高层次的程序数据移动分析。我们提供了一个新的观点多泵作为编译器优化-传统向量化的超类。当多个数据元素被馈送和消耗时,计算在时间上而不是空间上被打包。使用将高级代码映射到HLS的中间表示自动应用优化。在内部,优化将模块注入到生成的设计中,结合RTL对时钟域进行细粒度控制。我们在关键部件上实现了高达50%的资源消耗减少,平均减少23%。对于可扩展的设计,这可以实现进一步的并行性,提高整体性能。
英文摘要:
The multi-pumping resource sharing technique can overcome the limitations commonly found in single-clocked FPGA designs by allowing hardware components to operate at a higher clock frequency than the surrounding system. However, this optimization cannot be expressed in high levels of abstraction, such as HLS, requiring the use of hand-optimized RTL. In this paper we show how to leverage multiple clock domains for computational subdomains on reconfigurable devices through data movement analysis on high-level programs. We offer a novel view on multi-pumping as a compiler optimization - a superclass of traditional vectorization. As multiple data elements are fed and consumed, the computations are packed temporally rather than spatially. The optimization is applied automatically using an intermediate representation that maps high-level code to HLS. Internally, the optimization injects modules into the generated designs, incorporating RTL for fine-grained control over the clock domains. We obtain a reduction of resource consumption by up to 50% on critical components and 23% on average. For scalable designs, this can enable further parallelism, increasing overall performance.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。