Skip to main content
QUICK REVIEW

[论文解读] Resource-Aware Just-in-Time OpenCL Compiler for Coarse-Grained FPGA Overlays

Abhishek Kumar Jain, Douglas L. Maskell|arXiv (Cornell University)|May 8, 2017
Parallel Computing and Optimization Techniques参考文献 17被引用 3
一句话总结

本文提出一种面向基于DSP的粗粒度FPGA叠加层的资源感知即时(JIT)OpenCL编译器,通过绕过传统的FPGA布局布线过程,实现亚秒级编译时间。该方法在工作站上相比Vivado将PAR时间缩短了1,250倍,在Zynq ARM处理器上运行时也实现了300倍的加速,同时支持在50 μs内完成运行时内核复制和配置。

ABSTRACT

FPGA vendors have recently started focusing on OpenCL for FPGAs because of its ability to leverage the parallelism inherent to heterogeneous computing platforms. OpenCL allows programs running on a host computer to launch accelerator kernels which can be compiled at run-time for a specific architecture, thus enabling portability. However, the prohibitive compilation times (specifically the FPGA place and route times) are a major stumbling block when using OpenCL tools from FPGA vendors. The long compilation times mean that the tools cannot effectively use just-in-time (JIT) compilation or runtime performance scaling. Coarse-grained overlays represent a possible solution by virtue of their coarse granularity and fast compilation. In this paper, we present a methodology for run-time compilation of OpenCL kernels to a DSP block based coarse-grained overlay, rather than directly to the fine-grained FPGA fabric. The proposed methodology allows JIT compilation and on-demand resource-aware kernel replication to better utilize available overlay resources, raising the abstraction level while reducing compile times significantly. We further demonstrate that this approach can even be used for run-time compilation of OpenCL kernels on the ARM processor of the embedded heterogeneous Zynq device.

研究动机与目标

  • 解决FPGA OpenCL工具编译时间过长的问题,该问题阻碍了JIT编译和运行时性能扩展。
  • 通过采用粗粒度叠加层架构,克服细粒度FPGA结构的局限性,以加速布局布线过程。
  • 实现在运行时按需、基于资源感知的内核复制,以提高硬件利用率和性能。
  • 在嵌入式处理器(如Zynq ARM)上实现端到端的JIT编译,以支持可移植性和动态加速。
  • 量化基于叠加层的FPGA编译中编译速度与资源开销之间的权衡。

提出的方法

  • 利用LLVM前端设计自定义自动化映射流程,将OpenCL内核编译为基于DSP块的粗粒度叠加层。
  • 实现与厂商无关的编译管道,抽象低层FPGA细节,降低编译复杂度。
  • 使用针对叠加层架构定制的修改版布局布线(PAR)工具流程,极大缩短编译时间。
  • 在Zynq的ARM处理器上部署OpenCL运行时基础设施(pocl),以实现在嵌入式系统上的JIT编译和内核执行。
  • 基于可用的叠加层资源支持动态内核复制,实现运行时性能扩展。
  • 测量并比较基于叠加层与原生FPGA实现之间的PAR时间、频率、资源利用率(DSP、逻辑切片)以及配置时间。

实验结果

研究问题

  • RQ1与传统FPGA布局布线相比,粗粒度FPGA叠加层是否能显著缩短OpenCL内核编译时间?
  • RQ2在Zynq等嵌入式FPGA平台中,基于叠加层的方法在多大程度上能够实现JIT编译?
  • RQ3与直接FPGA实现相比,使用粗粒度叠加层的性能和资源开销如何?
  • RQ4在JIT环境中,能否通过该叠加层方法有效支持按需、基于资源感知的内核复制?
  • RQ5叠加层的配置时间与完整FPGA结构相比如何?

主要发现

  • 在高端工作站上,基于叠加层的布局布线过程比Vivado的原生FPGA流程快约1,250倍。
  • 在Zynq的ARM处理器上运行时,叠加层PAR过程仍比原生FPGA流程快300倍以上。
  • 与直接FPGA实现相比,叠加层导致DSP块使用量增加3.4倍,逻辑切片利用率增加32倍。
  • 由于简化了布线和可预测的布局,叠加层上的最大频率提升了1.6倍。
  • 配置时间减少了750倍,从FPGA的31.6 ms降低到8×8叠加层的42.4 μs。
  • 该系统成功仅通过Zynq的ARM处理器实现了JIT编译和运行时内核复制,证明了在嵌入式平台上的可行性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。