Open yuehhua opened 3 years ago
That's a very nice project that we should definitely integrate (when it is AD and gpu ready)
I'll have to figure out what we're looking at on the GPU front. GraphBLAST is a GPU implementation, but I'll have to write a shim since I don't believe it has a plain C .h file. SuiteSparse:GraphBLAS (the library I wrap) will support GPUs in the future; the author is working with Nvidia to get that working.
Does GeometricFlux support CPU compute as well? I could work towards getting it ready from the CPU side in the meantime?
@Wimmerer Thank you for your contribution and engagedness. I can realize that it is not easy and it requires large amount of work. Currently, GeometricFlux supports cpu and cuda for model training. So, for compatibility, if SuiteSparseGraphBLAS.jl is taken as the solution for GeometricFlux for now, and CUDA support is not ready for now, then CUSPARSE can be a candidate. For CPU part, it runs as expected. You can just feel free on your own working roadmap.
SuiteSparseGraphBLAS.jl provide the sparse representation of a graph and have better performance on algebraic operations, relative to
SparseMatrixCSC
in SparseArrays. It is suited for spectral-based graph convolutional layers likeGCNConv
orChebConv
. The integration will be made in GraphSignals.jl and GraphSignals.jl provides unified interfaces for graph convolutional layers to use.