Skip to content

Conversation

@upsj
Copy link
Member

@upsj upsj commented Sep 30, 2025

This adds a new SpGEMM/SpGEAM interface that works without abusing the LinOp::apply interface, and a new SpGEMM kernel that operates on an existing output structure (maybe it also makes sense to expose this as a masked SpGEMM operation? The difference is similar to LU vs. ILU kernels)

@upsj upsj requested a review from a team September 30, 2025 14:48
@upsj upsj self-assigned this Sep 30, 2025
@upsj upsj added the 1:ST:ready-for-review This PR is ready for review label Sep 30, 2025
@ginkgo-bot ginkgo-bot added reg:testing This is related to testing. type:matrix-format This is related to the Matrix formats mod:all This touches all Ginkgo modules. labels Sep 30, 2025
Copy link
Member

@MarcelKoch MarcelKoch left a comment

Choose a reason for hiding this comment

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

mostly lgtm, only some smaller remarks.

@upsj upsj requested a review from MarcelKoch October 1, 2025 14:58
@upsj
Copy link
Member Author

upsj commented Oct 1, 2025

@MarcelKoch I added the functionality to a benchmark, a very brief check on a 1Mx1M stencil matrix on an A2 GPU shows a roughly 1.4x speedup over normal SpGEMM

Copy link
Member

@MarcelKoch MarcelKoch left a comment

Choose a reason for hiding this comment

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

main question about how to construct the info object.

@upsj upsj changed the title Add new SpGEMM interface with reuse capabilities Add new SpGEMM/SpGEAM interface with reuse capabilities Oct 7, 2025
@upsj upsj requested a review from MarcelKoch October 7, 2025 18:38
@upsj
Copy link
Member Author

upsj commented Oct 7, 2025

I added advanced_spgemm (multiply_add) and spgeam (add_scale) interfaces, as well as reusable versions thereof with extensive tests of all the size checks and cross-executor functionality.

Copy link
Member

@MarcelKoch MarcelKoch left a comment

Choose a reason for hiding this comment

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

Only smaller nits left, mostly regarding the testing.

@upsj upsj requested a review from MarcelKoch October 22, 2025 19:36
@upsj upsj force-pushed the new_spgemm_interface branch from 5cd4586 to b015950 Compare October 22, 2025 19:39
@upsj upsj added 1:ST:ready-to-merge This PR is ready to merge. and removed 1:ST:ready-for-review This PR is ready for review labels Oct 23, 2025
- rename add_scale to scale_add
- remove unused variables

Co-authored-by: Marcel Koch <[email protected]>
@upsj upsj force-pushed the new_spgemm_interface branch from 8c5883a to 3dcf152 Compare October 24, 2025 20:12
@upsj upsj merged commit ab7a11f into develop Oct 28, 2025
16 of 17 checks passed
@upsj upsj deleted the new_spgemm_interface branch October 28, 2025 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1:ST:ready-to-merge This PR is ready to merge. mod:all This touches all Ginkgo modules. reg:testing This is related to testing. type:matrix-format This is related to the Matrix formats

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants