pyg-lib icon indicating copy to clipboard operation
pyg-lib copied to clipboard

[Roadmap] 0.1.0 Release 🚀

Open rusty1s opened this issue 2 years ago • 1 comments

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

Priority 1

  • [x] sparse_softmax(src, index):
    • [x] forward (CPU+GPU) (#135)
    • [ ] backward (CPU+GPU)

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

rusty1s avatar Apr 25 '22 17:04 rusty1s

I will take care of segment_matmul forward implementation for CPU. 😉

DamianSzwichtenberg avatar Sep 12 '22 06:09 DamianSzwichtenberg