Accelerating SpMM Kernel with Cache-First Edge Sampling for Graph Neural Networks
arXiv:2104.10716
Abstract
Graph neural networks (GNNs), an emerging deep learning model class, can extract meaningful representations from highly expressive graph-structured data and are therefore gaining popularity for wider ranges of applications. However, current GNNs suffer from the poor performance of their sparse-dense matrix multiplication (SpMM) operator, even when using powerful GPUs. Our analysis shows that 95% of the inference time could be spent on SpMM when running popular GNN models on NVIDIA's advanced V100 GPU. Such SpMM performance bottleneck hinders GNNs' applicability to large-scale problems or the development of more sophisticated GNN models. To address this inference time bottleneck, we introduce ES-SpMM, a cache-first edge sampling mechanism and codesigned SpMM kernel. ES-SpMM uses edge sampling to downsize the graph to fit into GPU's shared memory. It thus reduces the computation cost and improves SpMM's cache locality. To evaluate ES-SpMM's performance, we integrated it with a popular GNN framework, DGL, and tested it using representative GNN models and datasets. Our results show that ES-SpMM outperforms the highly optimized cuSPARSE SpMM kernel by up to 4.35x with no accuracy loss and by 45.3x with less than a 1% accuracy loss.
References in corpus (10)
- PyTorch: An Imperative Style, High-Performance Deep Learning Library
- Inductive Representation Learning on Large Graphs
- Modeling polypharmacy side effects with graph convolutional networks
- Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks
- Representation Learning on Graphs with Jumping Knowledge Networks
- DropEdge: Towards Deep Graph Convolutional Networks on Node Classification
- Open Graph Benchmark: Datasets for Machine Learning on Graphs
- Adaptive Sampling Towards Fast Graph Representation Learning
- CondenseNet: An Efficient DenseNet using Learned Group Convolutions
- GE-SpMM: General-purpose Sparse Matrix-Matrix Multiplication on GPUs for Graph Neural Networks