Graph/Sparse NN status and help wanted


#1

I’ve heard there is ongoing work from the SAMPL group to support graph neural networks and sparse operators in TVM. Can anyone comment on the status of this work, if there are any existing design documents, and where someone could potentially pitch in to this effort?

All I could find is the GNN relay doc here: https://docs.tvm.ai/tutorials/frontend/build_gcn.html

CC @ziheng

Thanks!


#2

There is an early prototype, but since this work is mostly work-in-progress, we don’t have documentation yet on the topic. It might be good to write a document highlighting the effort (sparse DSL support, operator coverage, scheduling templates) and where people could contribute. Something that you could start @ziheng?


#3

Looks like there’s a bit of discussion of next steps in the documentation PR.


#4

@jknight Thanks for your interest. I have some slides can share with you, which is some works I have done in spring quarter about TVM sparse support. I will also write a design document this week.


#5

Hi @ziheng, could you also share with me the slides? I am now working on TVM sparse support for my internship project at AWS.


#6

Yes, stay tuned with the tutorial update!


#7

To add on this, I think we have came up with the following directions we think are good to work on

  • more low level operators and scheduling support: cover more GNN workloads in terms of models and dataset.
  • sparse tensor support: have the right tensor representation to enable good codegen and auto-tuning
  • scatter-and-gather mechanism: a mechanism that other frameworks (DGL, PyG) already shown it’s suitable for executing GNN efficiently.

#8

@ziheng Are you working on an RFC for this? Any idea when that will be out? It seems like a lot of work is going on in this direction and it’d help to centralize it in one place.

@Huyuwei likewise, anything you an share here or in the RFC would be helpful.

@cylinbao Thanks for the list. Just clarifying, these are things you’d like for the community to work on? Or things you are working on currently? If the former, then it’d be good if you made issues for these and marked them as ‘Help wanted’ possibly with a pointer to someone who would be willing to mentor them.