  Graph neural networks (GNNs) start to gain momentum after showing significant
performance improvement in a variety of domains including molecular science,
recommendation, and transportation. Turning such performance improvement of
GNNs into practical applications relies on effective and efficient execution,
especially for inference. However, neither CPU nor GPU can meet these needs if
considering both performance and energy efficiency. That's because accelerating
GNNs is challenging due to their excessive memory usage and arbitrary
interleaving of diverse operations. Besides, the semantics gap between the
high-level GNN programming model and efficient hardware makes it difficult in
accelerating general-domain GNNs.
  To address the challenge, we propose Zipper, an efficient yet general
acceleration system for GNNs. The keys to Zipper include a graph-native
intermediate representation (IR) and the associated compiler. By capturing GNN
primitive operations and representing with GNN IR, Zipper is able to fit GNN
semantics into hardware structure for efficient execution. The IR also enables
GNN-specific optimizations including sparse graph tiling and redundant
operation elimination. We further present an hardware architecture design
consisting of dedicated blocks for different primitive operations, along with a
run-time scheduler to map a IR program to the hardware blocks. Our evaluation
shows that Zipper achieves 93.6x speedup and 147x energy reduction over Intel
Xeon CPU, and 1.56x speedup and 4.85x energy reduction over NVIDIA V100 GPU on
averages.
