Write a Blog >>
ICSE 2020
Wed 24 June - Thu 16 July 2020
Fri 10 Jul 2020 07:44 - 07:56 at Silla - I21-Version Control and Programming Chair(s): Sunghun Kim

Heterogeneous computing with field-programmable gate-arrays (FPGAs) has demonstrated orders of magnitude improvement in computing efficiency for many applications. However, the use of such platforms so far is limited to a small subset of programmers with specialized hardware knowledge. High-level synthesis (HLS) tools made significant progress in raising the level of programming abstraction from hardware programming languages to C/C++, but they usually cannot compile and generate accelerators for kernel programs with pointers, memory management, and recursion, and require manual refactoring to make them HLS-compatible. Besides, experts also need to provide heavily handcrafted optimizations to improve resource efficiency, which affects the maximum operating frequency, parallelization, and power efficiency.

We propose a new dynamic invariant analysis and automated refactoring technique, called HeteroRefactor. First, HeteroRefactor monitors FPGA-specific dynamic invariants—the required bitwidth of integer and floating-point variables, and the size of recursive data structures and stacks. Second, using this knowledge of dynamic invariants, it refactors the kernel to make traditionally HLS-incompatible programs synthesizable and to optimize the accelerator’s resource usage and frequency further. Third, to guarantee correctness, it selectively offloads the computation from CPU to FPGA, only if an input falls within the dynamic invariant. On average, for a recursive program of size 175 LOC, an expert FPGA programmer would need to write 185 more LOC to implement an HLS compatible version, while HeteroRefactor automates such transformation. Our results on Xilinx FPGA show that HeteroRefactor minimizes BRAM by 83% and increases frequency by 42% for recursive programs; reduces BRAM by 41% through integer bitwidth reduction; and reduces DSP by 50% through floating-point precision tuning.

Fri 10 Jul
Times are displayed in time zone: (UTC) Coordinated Universal Time change

07:00 - 08:00: Paper Presentations - I21-Version Control and Programming at Silla
Chair(s): Sunghun KimHong Kong University of Science and Technology
icse-2020-Software-Engineering-in-Practice07:00 - 07:12
Chungha SungUniversity of Southern California, Shuvendu K. LahiriMicrosoft Research, Mike KaufmanMicrosoft Corporation, Pallavi ChoudhuryMicrosoft Corporation, Chao WangUSC
icse-2020-Journal-First07:12 - 07:20
Sruti Srinivasa RagavanMicrosoft Research; School of EECS, Oregon State University, Mihai CodobanMicrosoft, David PiorkowskiIBM Research AI, Danny DigUniversity of Colorado, Boulder, Margaret BurnettOregon State University
icse-2020-Journal-First07:20 - 07:28
Yusuf Sulistyo NugrohoNara Institute of Science and Technology, Hideaki HataNara Institute of Science and Technology, Kenichi MatsumotoNara Institute of Science and Technology
DOI Media Attached
icse-2020-Journal-First07:28 - 07:36
Zhongxing YuKTH Royal Institute of Technology, Chenggang BaiBeihang University, Lionel Seinturier, Martin MonperrusKTH Royal Institute of Technology
icse-2020-Journal-First07:36 - 07:44
Bowen XuSingapore Management University, Le AnPolytechnique Montreal, Ferdian ThungSingapore Management University, Foutse KhomhPolytechnique Montréal, David LoSingapore Management University
icse-2020-papers07:44 - 07:56
Aishwarya SivaramanUniversity of California, Los Angeles, Jason LauUniversity of California, Los Angeles, Qian ZhangUniversity of California, Los Angeles, Muhammad Ali GulzarUniversity of California, Los Angeles, Jason CongUCLA, Miryung KimUniversity of California, Los Angeles