good first issuehelp wantedroadmap
Repository metrics
- Stars
- (236 stars)
- PR merge metrics
- (PR metrics pending)
Description
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)
- Deterministic sampling routines
- Full support for different data types, e.g.,
int32,int64, etc - Integration of
cugraphdependency - Neighbor Sampling
neighbor_sample(rowptr, col, seed, num_neighbors):- Support for homogeneous graphs (CPU+GPU)
- Support for heterogeneous graphs (CPU-only)
-
replace: sampling with or without replacement -
directed: sub-tree vs sub-graph sampling (CPU-only) -
disjoint: disjoint subtrees for every seed node (CPU-only) -
temporal: temporal sampling (CPU-only) -
weighted: Support for biased sampling (CPU-only) -
temporal_weighted: Support for biased temporal sampling (CPU-only) -
return_edge_id: Support for returning edge IDs (CPU-only)
- Subgraph Sampling
subgraph_sample(rowptr, col, nodes):- Support for homogeneous graphs (CPU+GPU)
- Support for heterogeneous graphs (CPU-only)
-
return_edge_id: Support for returning edge IDs (CPU-only)
Priority 1
- Random Walk Sampling
random_walk(rowptr, col, nodes):- 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
-
segment_matmul(src, ptr, other):-
forward(CPU+GPU) -
backward(CPU+GPU)
-
Priority 1
-
sparse_softmax(src, index):-
forward(CPU+GPU) (#135) -
backward(CPU+GPU)
-
Others
Priority 0 (refactor only)
-
METISgraph partitioning - Farthest point sampling
fps -
k-NNgraph generation -
radiusgraph generation/ball query
Priority 1
- Full support for different data types, e.g.,
int32,int64, etc