FeatGraph: A Flexible and Efficient Backend for Graph Neural Network
  Systems
  Graph neural networks (GNNs) are gaining increasing popularity as a promising
approach to machine learning on graphs. Unlike traditional graph workloads
where each vertex/edge is associated with a scalar, GNNs attach a feature
tensor to each vertex/edge. This additional feature dimension, along with
consequently more complex vertex- and edge-wise computations, has enormous
implications on locality and parallelism, which existing graph processing
systems fail to exploit.
  This paper proposes FeatGraph to accelerate GNN workloads by co-optimizing
graph traversal and feature dimension computation. FeatGraph provides a
flexible programming interface to express diverse GNN models by composing
coarse-grained sparse templates with fine-grained user-defined functions (UDFs)
on each vertex/edge. FeatGraph incorporates optimizations for graph traversal
into the sparse templates and allows users to specify optimizations for UDFs
with a feature dimension schedule (FDS). FeatGraph speeds up end-to-end GNN
training and inference by up to 32x on CPU and 7x on GPU.
