YukeWang96 / GNNAdvisor_OSDI21

Artifact for OSDI'21 GNNAdvisor: An Adaptive and Efficient Runtime System for GNN Acceleration on GPUs.
https://yukewang96.github.io/OSDI21_AE/
63 stars 20 forks source link

Question about GCN/GIN forward propagation #7

Open yofufufufu opened 1 year ago

yofufufufu commented 1 year ago

Hi Yuke,I read your paper and code, of course excellent work and thanks for the repository. I have question about the cuda kernel. I can see you computing GCN forward propagation in CUDA like this: https://github.com/YukeWang96/OSDI21_AE/blob/5c4f561aa27228164fc8c35d2468ea2cd9dc29ea/GNNAdvisor/GNNConv/GNNAdvisor_kernel.cu#L389 https://github.com/YukeWang96/OSDI21_AE/blob/5c4f561aa27228164fc8c35d2468ea2cd9dc29ea/GNNAdvisor/GNNConv/GNNAdvisor_kernel.cu#L399-L406 In my opinion, 1/degree_norm_inv should be used according to GCN paper, am I right? And in GIN cuda kernel: https://github.com/YukeWang96/OSDI21_AE/blob/5c4f561aa27228164fc8c35d2468ea2cd9dc29ea/GNNAdvisor/GNNConv/GNNAdvisor_kernel.cu#L676-L689 I think src node embedding $h^{k-1}_v$ should be used in forward propagation according to GIN paper. However, I can only see you aggregate the neighbor $h^{k-1}_u$ Thank you!

YukeWang96 commented 1 year ago

Hi,

Thanks for your interest in our work. Here are my answers for your reference.

And for improving the generality, you can consider simply replacing this https://github.com/YukeWang96/OSDI21_AE/blob/5c4f561aa27228164fc8c35d2468ea2cd9dc29ea/GNNAdvisor/GNNConv/GNNAdvisor_kernel.cu#L672 to initialize the partial aggregation results with the targeted node embedding values.

yofufufufu commented 1 year ago

Thanks for your reply. I am new to this field, maybe I misunderstand some basic knowledge?

graphs have self-loop edges

And does that mean all dataset(including Citeseer,Cora...) you use have selfloop edges? If true ,I have no other question.

Thanks for your time again!

YukeWang96 commented 1 year ago

Thanks for your suggestions.

yofufufufu commented 1 year ago

Thanks for your reply, I will try your suggestions. And I learn a lot from your work, thanks for the repository again!