Skip to content

Conversation

@BenBrock
Copy link
Collaborator

@BenBrock BenBrock commented Mar 6, 2025

This PR adds support for mixed CSR/CSC operations. This is done in three parts:

  • In the reference implementation, I added algorithms for outer product, inner product, and "scattered Gustavson's." This handles all combinations of CSC and CSR for both inputs and outputs.
  • Added tests for mixed CSR/CSC operations.
  • Extended MKL/ArmPL backends to work on both CSR and CSC matrices.

@BenBrock BenBrock marked this pull request as ready for review March 7, 2025 02:02
@BenBrock BenBrock requested review from spencerpatty and upsj March 7, 2025 02:02
spencerpatty
spencerpatty previously approved these changes Mar 7, 2025
Copy link
Contributor

@spencerpatty spencerpatty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a great first implementation of all the spgemm algorithms with csr/csc inputs and outputs. Approved for merge. I did add a few suggestions for future improvements that could be used to reduce memory footprint of workspaces, thereby improving performance since we are generally memory bound here.

Copy link
Contributor

@spencerpatty spencerpatty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new changes look good. Approved for merge again.

Implementations of hash_accumulator and sparse_intersection are good starting places and could be optimized further in subsequent actions.

@BenBrock BenBrock merged commit c512782 into main Mar 7, 2025
9 checks passed
@BenBrock BenBrock deleted the dev/brock/mixed-csr-csc branch March 7, 2025 19:24
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

Successfully merging this pull request may close these issues.

3 participants