Improved support for sparse data matrices
rileyjmurray opened this issue · 0 comments
rileyjmurray commented
PR #76 added initial (undocumented) support for sparse data matrices. Right now we only use that functionality to handle applying sparse sketching operators to dense data matrices. I'm opening this issue to document next steps that are needed before we make sparse data matrices part of the public API.
- Namespace changes: #81
- Move some sparse matrix datatypes into top-level
RandBLAS::
. - Remove the
RandBLAS_Testing
namespace (currently only used inRandBLAS/test_util.hh
; move code in that namespace to other, more appropriate files intest/..
.
- Move some sparse matrix datatypes into top-level
- Templating changes: #80
- Replace int64_t in sparse matrices with ordinal type that can only be a signed integer. This is needed for zero-copy views of sparse matrices that use 32-bit integers in one (or more) of their index vectors.
- Testing
- Create testing infrastructure for multiplying a dense matrix (represented by a plain buffer) and an abstract linear operator.
- PR #80.
- Port tests for dense and sparse sketching of dense matrices into the new framework.
- PR #80.
- Write dedicated tests for sparse-times-dense matmul that don't rely on the tests for sparse sketching operators times dense matrices.
- PR #81.
- Create testing infrastructure for multiplying a dense matrix (represented by a plain buffer) and an abstract linear operator.
- Functionality expansions
- Definite
-
Allow one-based indexing in multiply function(s).After attending the second sparse BLAS workshop it's become clear that this isn't essential. I just need to raise errors in functions that require 0-based indexing and I need functions to convert between 1-indexing and 0-indexing in-place. Completed in #83. - Native support for multiplication with CSC and CSR. (PR #82)
- View transposed CSR as CSC. (PR #82)
- View transposed CSC as CSR. (PR #82)
-
- Possible
- Definite