GenGNN: A Generic FPGA Framework for Graph Neural Network Acceleration

Graph neural networks (GNNs) have recently exploded in popularity thanks to their broad applicability to ubiquitous graph-related problems such as quantum chemistry, drug discovery, and high energy physics. However, meeting demand for novel GNN models and fast inference simultaneously is challenging because of the gap between the difficulty in developing efficient FPGA accelerators and the rapid pace of creation of new GNN models. Prior art focuses on the acceleration of specific classes of GNNs but lacks the generality to work across existing models or to extend to new and emerging GNN models. In this work, we propose a generic GNN acceleration framework using High-Level Synthesis (HLS), named GenGNN, with two-fold goals. First, we aim to deliver ultra-fast GNN inference without any graph preprocessing for real-time requirements. Second, we aim to support a diverse set of GNNmodels with the extensibility to flexibly adapt to new models. The framework features an optimized message-passing structure applicable to all models, combined with a rich library of model-specific components. We verify our implementation on-board on the Xilinx Alveo U50 FPGA and observe a speed-up of up to 25× against CPU (6226R) baseline and 13× against GPU (A6000) baseline. Our HLS code will be open-source on GitHub upon acceptance.1

[1]  Lei Deng,et al.  Rubik: A Hierarchical Architecture for Efficient Graph Neural Network Training , 2021, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[2]  Katsuhiko Ishiguro,et al.  Graph Warp Module: an Auxiliary Module for Boosting the Power of Graph Neural Networks , 2019, ArXiv.

[3]  Gisbert Schneider,et al.  Geometric deep learning on molecular representations , 2021, Nature Machine Intelligence.

[4]  Vijay S. Pande,et al.  MoleculeNet: a benchmark for molecular machine learning , 2017, Chemical science.

[5]  Lise Getoor,et al.  Query-driven Active Surveying for Collective Classification , 2012 .

[6]  Kevin Kiningham GRETA: HARDWARE OPTIMIZED GRAPH PROCESSING FOR GNNS , 2020 .

[7]  Viktor Prasanna,et al.  Hardware Acceleration of Large Scale GCN Inference , 2020, 2020 IEEE 31st International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[8]  Kilian Q. Weinberger,et al.  Simplifying Graph Convolutional Networks , 2019, ICML.

[9]  Max Welling,et al.  Semi-Supervised Classification with Graph Convolutional Networks , 2016, ICLR.

[10]  Jonathan Shlomi,et al.  Graph neural networks in particle physics , 2020, Mach. Learn. Sci. Technol..

[11]  Jure Leskovec,et al.  How Powerful are Graph Neural Networks? , 2018, ICLR.

[12]  Ahmed Louri,et al.  GCNAX: A Flexible and Energy-efficient Accelerator for Graph Convolutional Neural Networks , 2021, 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA).

[13]  Damian Szklarczyk,et al.  STRING v11: protein–protein association networks with increased coverage, supporting functional discovery in genome-wide experimental datasets , 2018, Nucleic Acids Res..

[14]  David S. Wishart,et al.  DrugBank 5.0: a major update to the DrugBank database for 2018 , 2017, Nucleic Acids Res..

[15]  Shuiwang Ji,et al.  Graph U-Nets , 2019, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[16]  Pietro Liò,et al.  Principal Neighbourhood Aggregation for Graph Nets , 2020, NeurIPS.

[17]  S. Reinhardt,et al.  AWB-GCN: A Graph Convolutional Network Accelerator with Runtime Workload Rebalancing , 2019, 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[18]  Weijing Shi,et al.  Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud , 2020, 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).

[19]  Song Han,et al.  GCN-RL Circuit Designer: Transferable Transistor Sizing with Graph Neural Networks and Reinforcement Learning , 2020, 2020 57th ACM/IEEE Design Automation Conference (DAC).

[20]  J. Leskovec,et al.  Open Graph Benchmark: Datasets for Machine Learning on Graphs , 2020, NeurIPS.

[21]  Lei Deng,et al.  GNNAdvisor: An Efficient Runtime System for GNN Acceleration on GPUs , 2020, ArXiv.

[22]  Samuel S. Schoenholz,et al.  Neural Message Passing for Quantum Chemistry , 2017, ICML.

[23]  Svetha Venkatesh,et al.  Graph Classification via Deep Learning with Virtual Nodes , 2017, ArXiv.

[24]  Lise Getoor,et al.  Collective Classification in Network Data , 2008, AI Mag..

[25]  Rakesh Kumar,et al.  Hardware Acceleration of Graph Neural Networks , 2020, 2020 57th ACM/IEEE Design Automation Conference (DAC).

[26]  Akshay Jain,et al.  Computing Graph Neural Networks: A Survey from Algorithms to Accelerators , 2020, ACM Comput. Surv..

[27]  Dominique Beaini,et al.  Directional Graph Networks , 2020, ICML.

[28]  Viktor Prasanna,et al.  GraphACT: Accelerating GCN Training on CPU-FPGA Heterogeneous Platforms , 2019, FPGA.

[29]  Philip Levis,et al.  GRIP: A Graph Neural Network Accelerator Architecture , 2020, IEEE Transactions on Computers.

[30]  Jure Leskovec,et al.  Inductive Representation Learning on Large Graphs , 2017, NIPS.

[31]  Pietro Liò,et al.  Graph Attention Networks , 2017, ICLR.

[32]  Viktor K. Prasanna,et al.  BoostGCN: A Framework for Optimizing GCN Inference on FPGA , 2021, 2021 IEEE 29th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[33]  Pan Li,et al.  MELOPPR: Software/Hardware Co-design for Memory-efficient Low-latency Personalized PageRank , 2021, 2021 58th ACM/IEEE Design Automation Conference (DAC).

[34]  Dongrui Fan,et al.  HyGCN: A GCN Accelerator with Hybrid Architecture , 2020, 2020 IEEE International Symposium on High Performance Computer Architecture (HPCA).