Programming Heterogeneous Systems from an Image Processing DSL

被引:73
作者
Pu, Jing [1 ]
Bell, Steven [1 ]
Yang, Xuan [1 ]
Setter, Jeff [1 ]
Richardson, Stephen [1 ]
Ragan-Kelley, Jonathan [2 ]
Horowitz, Mark [1 ]
机构
[1] Stanford Univ, Dept Elect Engn, Stanford, CA 94305 USA
[2] Univ Calif Berkeley, Dept Elect Engn & Comp Sci, Berkeley, CA 94720 USA
关键词
Image processing; domain specific languages; FPGAs; high-level synthesis; HIGH-LEVEL SYNTHESIS; LANGUAGE; OPENCL; FILTER;
D O I
10.1145/3107953
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Specialized image processing accelerators are necessary to deliver the performance and energy efficiency required by important applications in computer vision, computational photography, and augmented reality. But creating, "programming," and integrating this hardware into a hardware/software system is difficult. We address this problem by extending the image processing language Halide so users can specify which portions of their applications should become hardware accelerators, and then we provide a compiler that uses this code to automatically create the accelerator along with the "glue" code needed for the user's application to access this hardware. Starting with Halide not only provides a very high-level functional description of the hardware but also allows our compiler to generate a complete software application, which accesses the hardware for acceleration when appropriate. Our system also provides high-level semantics to explore different mappings of applications to a heterogeneous system, including the flexibility of being able to change the throughput rate of the generated hardware. We demonstrate our approach by mapping applications to a commercial Xilinx Zynq system. Using its FPGA with two low-power ARM cores, our design achieves up to 6x higher performance and 38x lower energy compared to the quad-core ARM CPU on an NVIDIA Tegra K1, and 3.5x higher performance with 12x lower energy compared to the K1' s 192-core GPU.
引用
收藏
页数:25
相关论文
共 61 条
  • [1] The Frankencamera: An Experimental Platform for Computational Photography
    Adams, Andrew
    Jacobs, David E.
    Dolson, Jennifer
    Tico, Marius
    Pulli, Kari
    Talvala, Eino-Ville
    Ajdin, Boris
    Vaquero, Daniel
    Lensch, Hendrik P. A.
    Horowitz, Mark
    Park, Sung Hee
    Gelfand, Natasha
    Baek, Jongmin
    Matusik, Wojciech
    Levoy, Marc
    [J]. ACM TRANSACTIONS ON GRAPHICS, 2010, 29 (04):
  • [2] [Anonymous], XIL WIK OP SOURC LIN
  • [3] [Anonymous], 2016, ZYNQ 7000 ALL PROGR
  • [4] [Anonymous], AXI DMA V7 1 LOGICOR
  • [5] [Anonymous], THESIS
  • [6] [Anonymous], 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL), DOI DOI 10.1109/FPL.2012.6339272
  • [7] [Anonymous], CAT HIGH LEV SYNTH
  • [8] [Anonymous], INT FPGA SDK OPENCL
  • [9] [Anonymous], MAXCOMPILER WHIT PAP
  • [10] [Anonymous], 2016, VIV HIGH LEV SYNTH