ISSN 1000-1239 CN 11-1777/TP

Journal of Computer Research and Development ›› 2020, Vol. 57 ›› Issue (6): 1164-1178.doi: 10.7544/issn1000-1239.2020.20200106

Special Issue: 2020计算机体系结构前沿技术专题

Previous Articles     Next Articles

Programming and Developing Environment for FPGA Graph Processing: Survey and Exploration

Guo Jinyang, Shao Chuanming, Wang Jing, Li Chao, Zhu Haojin, Guo Minyi   

  1. (School of Electronic Information and Electrical Engineering, Shanghai Jiao Tong University, Shanghai 200240)
  • Online:2020-06-01
  • Supported by: 
    This work was supported by the National Key Research and Development Plan of China (2018YFB1003500).

Abstract: Due to the advantages of high performance and efficiency, graph processing accelerators based on reconfigurable architecture field programmable gate array (FPGA) have attracted much attention, which satisfy complex graph applications with various basic operations and large-scale of graph data. However, efficient code design for FPGA takes long time, while the existing functional programming environment cannot achieve desirable performance. Thus, the problem of programming wall on FPGA is significant, and has become a serious obstacle when designing the dedicated accelerators. A well-designed programming environment is necessary for the further popularity of FPGA-based graph processing accelerators. A well-designed programming environment calls for convenient application programming interfaces, scalable application programming models, efficient high-level synthesis tools, and a domain-specific language that can integrate software/hardware features and generate high-performance underlying code. In this article, we make a systematic exploration of the programming environment for FPGA graph processing. We mainly introduce and analyze programming models, high-level synthesis, programming languages, and the related hardware frameworks. In addition, we also introduce the domestic and foreign development of FPGA-based graph processing accelerators. Finally, we discuss the open issues and challenges in this specific area.

Key words: field programmable gate array (FPGA), graph processing, hardware accelerator, programming environment, programming model, high-level synthesis, domain-specific language, application programming interface (API)

CLC Number: