-
Notifications
You must be signed in to change notification settings - Fork 47
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
use SuiteSparseGraphBLAS's sparsematrix implementation (GBMatrix) #19
Conversation
Can you assign this to me @CarloLucibello? |
04f727e
to
6cd2f0a
Compare
Sure, thanks! I rebased on master and I guess you should be able to push to this branch now |
Ideally, I'd like any sparse matrix backend to act as a drop-in replacement of SparseMatrixCSC, so that it should be possible to easily switch between backends and compare performance. We could even consider introducing a new Then one can look into specializing Unfortunately, I think decent gpu support won't be available for a while for any sparse matrix type (although things are moving a bit in CUDA.jl) |
@@ -124,7 +124,7 @@ function to_sparse(A::ADJMAT_T, T::DataType=eltype(A); dir=:out, num_nodes=nothi | |||
A = T.(A) | |||
end | |||
if !(A isa AbstractSparseMatrix) | |||
A = sparse(A) | |||
A = GBMatrix(sparse(A)) |
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.
A = GBMatrix(sparse(A)) | |
A = GBMatrix(A) |
?
I'll have a chance to look at this later in the week. I'll check with the upstream author about the status of the GPU portion, but it'll take a bit for sure. |
it doesn't have to come all together. Actually I would keep the two things separate: first PR we integrate cpu GBMatrix support, then we see what we can do about gpus |
SuiteSparse's license seems complicated |
We're only using the GraphBLAS part which is compatible (and pretty much separate) IIRC it's Apache 2. SuiteSparse's many other parts are mostly GPL, but we're safe, they are compiled separately and not linked. I did accidentally include SuiteSparse.jl as a dependency in my most recent commit to #master so this is a good remind :). |
closing in favor of #222 |
This uses SuiteSparseGraphBLAS.GBMatrix as a replacement for SparseArryas.SparseMatrixCSC.
It looks like many features are missing in GBMatrix though and a ton of tests are not passing.