dglai / minigun

Light-weight GPU kernel interface for graph operations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MiniGun: Light-weight GPU kernel interface for graph operations

The project is heavily influenced by the Gunrock project. The goal is to define a general kernel library that can cover a wide range of graph operations used in DGL.

Current roadmap:

  • Port basic advance operator (all edge policy).
  • Port advance operator with dynamic frontiers.
  • Port more advance kernel policies
    • TWC
    • Inbound edge partition
    • outbound edge partition
  • CPU implementation for advance
  • Integration with DGL
  • Filter

Build

Require CUDA.

mkdir build
cmake ..
make -j4

Play

See codes in samples. Currently, there are four:

  • spmv
  • spmm
  • masked_mm
  • edge_softmax

You could run sample by (in the build folder):

./samples/spmv/spmv

Disclaimer: Minigun project is not related to the "mini-gunrock" project.

About

Light-weight GPU kernel interface for graph operations

License:Apache License 2.0


Languages

Language:CMake 51.2%Language:Cuda 18.3%Language:C++ 16.6%Language:Python 9.7%Language:Shell 4.2%