Skip to content

Merge SparseMatricesCSR.jl in #520

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

Closed
Gregstrq opened this issue Mar 5, 2024 · 2 comments
Closed

Merge SparseMatricesCSR.jl in #520

Gregstrq opened this issue Mar 5, 2024 · 2 comments

Comments

@Gregstrq
Copy link

Gregstrq commented Mar 5, 2024

Wouldn't it make sense from an organizational point of view to merge SparseMatricesCSR.jl into this library?

Being able to work with CSR matrices is beneficial, because matvec product with CSR matrix is easier paralellizable than with a CSC matrix. Having a designated CSR implementation here would help interoperability with other libraries. For example, MKLSparse.jl could add hooks for the CSR functions in the MKL library. CUDA.jl has its CuSparseMatrixCSR type, and it would be good to add a constructor from a CSR matrix on CPU.

The major opposing argument is simply to use a lazy transpose over CSC matrix. However, benchmarks in this post show that it can work slower.
More importantly, it puts an unnecessary mental overhead on the user by making him construct a transpose of the matrix instead of the matrix itself, which could be prone to mistakes.

@ViralBShah
Copy link
Member

@ViralBShah
Copy link
Member

I don't think we should merge it in here. It will slow down development and ability to ship (which will get tied to the Julia release schedule). What we want to do is remove SparseArrays from the Julia stdlibs so that it can be a regular package - at which point it would make sense to consolidate capabilities.

Wondering what @rayegun thinks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants