pyg-lib
pyg-lib copied to clipboard
[Roadmap] 0.1.0 Release 🚀
The first pyg-lib
release will focus on unifying the implementations from torch-sparse
and torch-cluster
into a single package in order to reduce the number of external low-level library dependencies of PyG.
In addition, implementations will be improved, e.g., by out-sourcing common routines into re-usable building blocks, unifiying the interfaces, supporting various data types, biased sampling, etc.
New functionality will be integrated for temporal-based learning and GNN acceleration.
Samplers
Priority 0
- [ ] Unify common routines behind re-usable functions (e.g., sampling with/without replacement)
- [x] Deterministic sampling routines
- [ ] Full support for different data types, e.g.,
int32
,int64
, etc - [ ] Integration of
cugraph
dependency - [ ] Neighbor Sampling
neighbor_sample(rowptr, col, seed, num_neighbors)
:- [ ] Support for homogeneous graphs (CPU+GPU)
- [ ] Support for heterogeneous graphs (CPU-only)
- [x]
replace
: sampling with or without replacement - [x]
directed
: sub-tree vs sub-graph sampling (CPU-only) - [x]
disjoint
: disjoint subtrees for every seed node (CPU-only) - [x]
temporal
: temporal sampling (CPU-only) - [ ]
weighted
: Support for biased sampling (CPU-only) - [ ]
temporal_weighted
: Support for biased temporal sampling (CPU-only) - [x]
return_edge_id
: Support for returning edge IDs (CPU-only)
- [ ] Subgraph Sampling
subgraph_sample(rowptr, col, nodes)
:- [x] Support for homogeneous graphs (CPU+GPU)
- [ ] Support for heterogeneous graphs (CPU-only)
- [x]
return_edge_id
: Support for returning edge IDs (CPU-only)
Priority 1
- [ ] Random Walk Sampling
random_walk(rowptr, col, nodes)
:- [x] Support for homogeneous graphs (CPU+GPU)
- [ ] Support for heterogeneous graphs (CPU-only)
- [ ]
weighted
: Support for biased sampling (CPU-only) - [ ]
node2vec
-based sampling (CPU-only) - [ ]
return_edge_id
: Support for returning edge IDs (CPU-only)
- [ ] Heterogeneous Graph Transformer Sampling
hgt_sample(rowptr, dict, seed)
:- [ ]
weighted
: Support for biased sampling (CPU-only)
- [ ]
Operators
Priority 0
- [x]
segment_matmul(src, ptr, other)
:- [x]
forward
(CPU+GPU) - [x]
backward
(CPU+GPU)
- [x]
Priority 1
- [x]
sparse_softmax(src, index)
:- [x]
forward
(CPU+GPU) (#135) - [ ]
backward
(CPU+GPU)
- [x]
Others
Priority 0 (refactor only)
- [ ]
METIS
graph partitioning - [ ] Farthest point sampling
fps
- [ ]
k-NN
graph generation - [ ]
radius
graph generation/ball query
Priority 1
- [ ] Full support for different data types, e.g.,
int32
,int64
, etc
I will take care of segment_matmul forward implementation for CPU. 😉