feat (sparse) : add support for the BSR sparse format - #1201
Draft
jalvesz wants to merge 35 commits into
Draft
Conversation
- Add BSR_type to stdlib_sparse_kinds - Add spmv_bsr implementation in new stdlib_sparse_spmv_bsr.fypp - Register stdlib_sparse_spmv_bsr.fypp in CMakeLists.txt - Add BLAS linkage to sparse target - Update spmv interface with BSR subroutine declarations - Update COO spmv to use do concurrent with entry_index naming - Add BSR documentation to stdlib_sparse.md - Add BSR tests to test_linalg_sparse.fypp Rebased onto fortran-lang/stdlib master (0e45050)
# Conflicts: # src/sparse/stdlib_sparse_spmv_coo.fypp # src/sparse/stdlib_sparse_spmv_csc.fypp # src/sparse/stdlib_sparse_spmv_ell.fypp
feat(sparse): add BSR format and rebase sparse_bsr onto fortran-lang/stdlib master
* Initial plan
* Refactor stdlib_sparse_spmv_bsr: split OOP procedures into non-OOP kernels and thin wrappers
- Create spmv_bsr_1d_${s1}$_kernel and spmv_bsr_2d_${s1}$_kernel non-OOP subroutines
containing the full computational logic for rank=1 and rank=2 BSR SpMV respectively
- Kernel signature: (data, rowptr, col, nrows, ncols, storage, block_shape, vec_x, vec_y, alpha, beta, op)
- Update spmv_bsr_1d_${s1}$ and spmv_bsr_2d_${s1}$ OOP module subroutines to thin wrappers
that unpack matrix components and forward them to the corresponding kernel
- Eliminate all `associate` statements from OOP wrappers
- Preserve all existing numerical behavior: storage modes, ops, BLAS call semantics
* Apply remaining changes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1201 +/- ##
==========================================
- Coverage 68.68% 68.20% -0.48%
==========================================
Files 407 19 -388
Lines 13612 2378 -11234
Branches 1537 0 -1537
==========================================
- Hits 9349 1622 -7727
+ Misses 4263 756 -3507 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft PR to introduce the BSR (Block Sparse Row) matrix format. Similar to the CSR format but allowing dense NxM blocks per index entry in the sparse graph.