中文

基于图像处理领域特定语言对异构系统进行编程

软件工程 2016-11-01 v1

摘要

专用的图像处理加速器对于提供计算机视觉、计算摄影和增强现实等重要应用所需的性能和能源效率至关重要。然而,创建、"编程"并将此类硬件集成到硬件/软件系统中十分困难。我们通过扩展图像处理语言 Halide 来解决这一问题,使用户能够指定其应用中哪些部分应变为硬件加速器,随后我们提供一个编译器,利用该代码自动生成加速器以及用户应用访问该硬件所需的"胶水"代码。从 Halide 入手不仅提供了硬件的极高层级功能描述,还允许我们的编译器生成完整的软件程序,包括访问硬件以进行加速的工作负载顺序部分。我们的系统还提供了高层语义,以探索应用在异构系统上的不同映射方案,并增加了以各种吞吐率进行映射的灵活性。我们通过将应用映射到 Xilinx Zynq 系统来演示我们的方法。利用其带有两个低功耗 ARM 核心的 FPGA,与 NVIDIA Tegra K1 上的四核 ARM CPU 相比,我们的设计实现了高达 6 倍的性能提升和 8 倍的能耗降低;与 K1 的 192 核 GPU 相比,实现了 3.5 倍的性能提升和 12 倍的能耗降低。

关键词

引用

@article{arxiv.1610.09405,
  title  = {Programming Heterogeneous Systems from an Image Processing DSL},
  author = {Jing Pu and Steven Bell and Xuan Yang and Jeff Setter and Stephen Richardson and Jonathan Ragan-Kelley and Mark Horowitz},
  journal= {arXiv preprint arXiv:1610.09405},
  year   = {2016}
}