You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've noticed a significant gap in the PyTorch ecosystem: there's no comprehensive Graph Neural Network (GNN) library for LibTorch/C++.
While Python has excellent libraries like PyTorch Geometric and DGL, C++ developers are left to implement GNN operations from scratch. This creates barriers for:
Production deployments requiring low-latency inference
Integration with existing C++ ML pipelines
Mobile and embedded applications
High-performance training on large graphs
My Proposal
I'm proposing to develop LibTorch-Geometric - a comprehensive C++ GNN library that would provide:
Core Features
Graph data structures with efficient batching for variable-sized graphs
Message passing framework similar to PyG's MessagePassing class
Performance: Native C++ speed without Python overhead
Production Ready: Deploy GNNs without Python dependencies
Ecosystem Growth: Brings graph deep learning to more use cases
Research Impact: Enables high-performance GNN research
My Background
I'm an MTech student & I have experience with C++, CUDA, and deep learning, and I'm committed to seeing this through to completion and long-term maintenance.
Questions for the Community
Interest Level: Would this be valuable to the PyTorch ecosystem?
API Design: Does the proposed C++ API feel natural? Any suggestions for improvement?
Priority Features: Which GNN layers and operations should I prioritize first?
Basic layers: GCN, GraphSAGE, GAT?
Graph pooling operations?
Large graph sampling algorithms?
Integration: How should this integrate with existing PyTorch tooling?
Should it follow the same conventions as other LibTorch extensions?
Any specific build system preferences?
Performance Requirements: What are the key bottlenecks you've experienced with Python GNN libraries?
Contribution Path: Would this be better as:
Independent library in the PyTorch ecosystem (like PyG for Python)?
Eventually proposed for inclusion in PyTorch core?
Hybrid approach - start independent, propose inclusion if successful?
Next Steps
Based on community feedback, I plan to:
Start with a prototype implementing basic GCN and message passing
Create benchmarking framework vs Python implementations
Iterate based on real-world usage and community input
Open source everything and build contributor community
Timeline
Months 1-2: Core infrastructure and basic layers
Months 3-4: Standard GNN implementations
Months 5-6: Performance optimization and CUDA kernels
Months 7-8: Documentation, examples, and community feedback
TL;DR: I want to build a comprehensive GNN library for LibTorch to fill the C++ ecosystem gap. Looking for community input on design, priorities, and contribution approach.
Your thoughts? Would love to hear from both potential users and PyTorch maintainers! 🚀
Cross-posting this to PyTorch Forums as well to reach broader audience
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi PyTorch Community! 👋
The Problem
I've noticed a significant gap in the PyTorch ecosystem: there's no comprehensive Graph Neural Network (GNN) library for LibTorch/C++.
While Python has excellent libraries like PyTorch Geometric and DGL, C++ developers are left to implement GNN operations from scratch. This creates barriers for:
My Proposal
I'm proposing to develop LibTorch-Geometric - a comprehensive C++ GNN library that would provide:
Core Features
Example API (Draft)
Why This Matters
My Background
I'm an MTech student & I have experience with C++, CUDA, and deep learning, and I'm committed to seeing this through to completion and long-term maintenance.
Questions for the Community
Interest Level: Would this be valuable to the PyTorch ecosystem?
API Design: Does the proposed C++ API feel natural? Any suggestions for improvement?
Priority Features: Which GNN layers and operations should I prioritize first?
Integration: How should this integrate with existing PyTorch tooling?
Performance Requirements: What are the key bottlenecks you've experienced with Python GNN libraries?
Contribution Path: Would this be better as:
Next Steps
Based on community feedback, I plan to:
Timeline
TL;DR: I want to build a comprehensive GNN library for LibTorch to fill the C++ ecosystem gap. Looking for community input on design, priorities, and contribution approach.
Your thoughts? Would love to hear from both potential users and PyTorch maintainers! 🚀
Cross-posting this to PyTorch Forums as well to reach broader audience
Beta Was this translation helpful? Give feedback.
All reactions