torch-quiver  by quiver-team

PyTorch library for high-performance GNN serving and distributed graph learning

Created 6 years ago
305 stars

Top 88.6% on SourcePulse

GitHubView on GitHub
Project Summary

Quiver is a distributed graph learning library designed to enhance PyTorch Geometric (PyG) applications by providing low-latency, high-throughput graph processing on GPUs. It targets PyG users needing to scale graph learning workloads across multiple GPUs and CPUs, offering a significant performance boost over standard PyG and DGL implementations, particularly for GNN serving scenarios.

How It Works

Quiver employs workload metrics to optimize irregular GNN computations. For graph sampling, it predicts probabilistic sampled graph sizes to intelligently manage parallelism, directing tasks to GPUs only when performance gains justify the overhead compared to CPU-based sampling. For feature aggregation, it utilizes feature access probabilities to strategically partition and replicate features across GPU NUMA topologies, ensuring popular features are readily accessible via low-latency interconnects like NVLink and InfiniBand, and leveraging GPU kernels for efficient remote feature access.

Quick Start & Requirements

  • Primary Install: pip install torch-quiver
  • Prerequisites: PyTorch, PyTorch Geometric (PyG).
  • Tested Setup: OS: Ubuntu 18.04, 20.04; CUDA: 10.2, 11.1; GPUs: P100, V100, Titan X, A6000.
  • Examples & Docs: Available in the repository, including guides for single-GPU and multi-GPU PyG scripts, serving examples, and a design overview. Docker installation is recommended for simplicity.

Highlighted Details

  • Achieves up to 35x lower latency and 8x higher throughput compared to DGL and PyG in GNN serving benchmarks.
  • Provides an easy-to-use API for efficient GNN serving.
  • Features novel adaptive data/feature/processor management for scalable distributed graph learning.
  • Optimizes feature aggregation by strategically placing popular features on GPUs for low-latency access over NVLink/InfiniBand.

Maintenance & Community

Developed by researchers from the University of Edinburgh, Imperial College London, Tsinghua University, and the University of Waterloo, with support from Alibaba and Lambda Labs. Contributors are welcomed.

Licensing & Compatibility

The provided README does not specify the software license, which is a critical detail for evaluating compatibility and potential restrictions for commercial or closed-source use.

Limitations & Caveats

Multi-node performance results are planned for future releases. The library is at version 0.2.0, indicating it is relatively new and may still be evolving.

Health Check
Last Commit

3 years ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.