FeatGraph: A Flexible and Efficient Backend for Graph Neural Network Systems
This addresses performance bottlenecks for researchers and practitioners using GNNs on large-scale graph data, representing a novel method rather than an incremental improvement.
The paper tackles the inefficiency of existing graph processing systems for Graph Neural Networks (GNNs) by proposing FeatGraph, which co-optimizes graph traversal and feature dimension computation, resulting in speedups of up to 32x on CPU and 7x on GPU for GNN training and inference.
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.