Introduce Abstract types for sparse arrays#577
Introduce Abstract types for sparse arrays#577albertomercurio wants to merge 9 commits intoJuliaGPU:masterfrom
Conversation
maleadt
left a comment
There was a problem hiding this comment.
Interesting!
FYI, CUDA.jl already has quite some native sparse operations implemented (including broadcast), so you may want to look there for inspiration, or to port additional functionality.
|
Yes I'm already using some of them. I recently needed to implement sparse support for Metal.jl, so I decided to implement it very generally here. I will for sure take inspiration from the CUDA sparse implementation. |
|
Sparse Matrix x dense vector and Sparse Matrix x dense matrix (few columns) for just the CSC format would already cover many relevant use cases and imo would be worth merging without the ambitious complete set of features. |
|
Is this still live given the merged sparse changes? |
|
Sorry for my late response. I didn't have time to continue it, and in the last period I decided to make a library that does it directly |
|
Can I close this PR, then? |
|
Yes |
I find the AbstractGPUArray implementation very useful, which allows to have very generic methods for any GPU array, from CUDA.jl to Metal.jl and others.
Here, I try to implement such feature for sparse arrays. It is still a draft, but the basic method seems already to work. I can perform matrix-vector multiplication between a
JLSparseMatrixCSCand a `JLVector.What I would like to implement in this PR:
I think this is already enough for a single PR.