-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add LocalFeatureStore
for distributed training
#7452
Add LocalFeatureStore
for distributed training
#7452
Conversation
for more information, see https://pre-commit.ci
…g888/pytorch_geometric into local_feature_store sync remote
LocalFeatureStore
for distributed training
@rusty1s anything i need change here? :-) Thanks. |
Codecov Report
@@ Coverage Diff @@
## master #7452 +/- ##
==========================================
- Coverage 91.61% 91.44% -0.18%
==========================================
Files 445 446 +1
Lines 24717 24775 +58
==========================================
+ Hits 22644 22655 +11
- Misses 2073 2120 +47
... and 17 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ZhengHongming888 I made some changes, PTAL. Especially, I introduced get_tensor_from_global_id
such that global_id_to_index
is solely a private attribute. I think this makes the logic a bit nicer.
Also left a TODO such that we could potentially compute the mapping much more memory-friendly, e.g., via utils.map_index
functionality from PyG. PTAL.
Thanks @rusty1s yes it is very clear for me on these correction ! Thanks. |
This code belongs to the part of the whole distributed training for PyG.
This class extends from FeatureStore and use the store dict to save the node/edge features and also use global_idx & id2index dict to save the global node ids and the id mapping between node ids and local feature index, these of which will be used by sampling and feature lookup stage.
We also include the unit test under /test/distributed folder to show how the node/edge feature will be saving/getting and verified by two kinds of method.
Any comments please let us know. thanks