Skip to content

Merge SparseMatricesCSR.jl in #520

@Gregstrq

Description

@Gregstrq

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions