Skip to main content
QUICK REVIEW

[论文解读] Code Generation for High-Level Synthesis of Multiresolution Applications on FPGAs

Moritz Schmid, Oliver Reiche|arXiv (Cornell University)|Aug 20, 2014
Numerical Methods and Algorithms参考文献 16被引用 12
一句话总结

本文提出了一种基于 HIPAcc DSL 的代码生成框架,可自动合成高性能、多分辨率图像处理应用,适用于 FPGA 和嵌入式 GPU。通过利用领域特定语言和自动高层次综合,该方法实现了多分辨率算法(如高斯金字塔和拉普拉斯金字塔)的高效实现,而无需低层硬件专业知识,从而在异构加速器上实现优化性能。

ABSTRACT

Multiresolution Analysis (MRA) is a mathematical method that is based on working on a problem at different scales. One of its applications is medical imaging where processing at multiple scales, based on the concept of Gaussian and Laplacian image pyramids, is a well-known technique. It is often applied to reduce noise while preserving image detail on different levels of granularity without modifying the filter kernel. In scientific computing, multigrid methods are a popular choice, as they are asymptotically optimal solvers for elliptic Partial Differential Equations (PDEs). As such algorithms have a very high computational complexity that would overwhelm CPUs in the presence of real-time constraints, application-specific processors come into consideration for implementation. Despite of huge advancements in leveraging productivity in the respective fields, designers are still required to have detailed knowledge about coding techniques and the targeted architecture to achieve efficient solutions. Recently, the HIPAcc framework was proposed as a means for automatic code generation of image processing algorithms, based on a Domain-Specific Language (DSL). From the same code base, it is possible to generate code for efficient implementations on several accelerator technologies including different types of Graphics Processing Units (GPUs) as well as reconfigurable logic (FPGAs). In this work, we demonstrate the ability of HIPAcc to generate code for the implementation of multiresolution applications on FPGAs and embedded GPUs.

研究动机与目标

  • 解决在 FPGA 上手动实现复杂多分辨率算法的挑战,这需要对算法和低层硬件设计有深入理解。
  • 通过从高层规格自动生成代码,缩小硬件加速中的生产力差距。
  • 扩展 HIPAcc 框架以支持 FPGA 的高层次综合(HLS),实现跨多种加速器平台的可移植、高效实现。
  • 证明基于图像金字塔和多网格方法的多分辨率应用可通过自动代码生成高效映射到 FPGA 上。

提出的方法

  • 使用 HIPAcc 领域特定语言(DSL)以高层、可移植的形式表达多分辨率图像处理算法。
  • 该框架可从 DSL 规格自动生成优化的 C++/OpenCL 代码,目标平台包括 FPGA 和 GPU。
  • 应用高层次综合(HLS)工具将生成的 C++ 代码转换为硬件描述(如 Verilog/VHDL),用于 FPGA 实现。
  • 该方法支持多分辨率处理中常见的算法模式,如金字塔分解和递归滤波。
  • 代码生成流水线通过自动流水线化和资源共享,确保数据流和并行性的充分挖掘。
  • 该框架支持跨平台部署,使同一算法规格可仅通过极少修改映射到不同加速器。

实验结果

研究问题

  • RQ1能否使用高层领域特定语言自动为 FPGA 生成多分辨率图像处理算法?
  • RQ2与手动设计相比,HIPAcc 框架在生成高性能 FPGA 实现方面效果如何?
  • RQ3通过自动代码生成,同一算法规格在不同加速器平台(包括 FPGA 和 GPU)上的复用程度如何?
  • RQ4当将高层次综合应用于多分辨率算法(如图像金字塔和多网格求解器)时,可实现的性能和资源效率如何?

主要发现

  • HIPAcc 框架成功从高层 DSL 规格自动生成高效、可综合的硬件代码,用于 FPGA 上的多分辨率图像处理应用。
  • 该方法可实现多分辨率算法(如高斯金字塔和拉普拉斯金字塔)在 FPGA 上的自动映射,而无需编写低层硬件代码。
  • 生成的 FPGA 实现展现出高性能和资源效率,证明了自动 HLS 在复杂科学工作负载中的可行性。
  • 同一算法规格可在多个平台(包括 FPGA 和 GPU)上复用,显著降低开发成本并提升可移植性。
  • 该框架显著降低了在可重构硬件上实现高性能多分辨率应用的技术门槛。

更好的研究,从现在开始

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

无需绑定信用卡

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