Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of CSR/CSR Matrix Multiplication (@) #799

Merged

Conversation

GuilloteauQ
Copy link
Contributor

This PR implements a kernel for the matrix multiplication between two CSR matrices.

Related Issue: #793

Fixes also #783

Questions

@corepointer
Copy link
Collaborator

Sparsity estimation is being worked on in #790. Maybe the link you provided here can be of help there? @Garic152

@corepointer
Copy link
Collaborator

Some test cases would be awesome. Maybe something similar to the dense mat mult test?

@Garic152
Copy link
Contributor

Garic152 commented Aug 2, 2024

Sparsity estimation is being worked on in #790. Maybe the link you provided here can be of help there?

Thanks, I'll definetly take a look at it!

GuilloteauQ and others added 2 commits August 9, 2024 16:10
This commit implements SpGEMM on CPU without transpose support. For more details see GitHub issue daphne-eu#793.

Closes daphne-eu#799, Fixes daphne-eu#793
This commit adds a quick fix to not merge transpose operations into sparse matrix multiplication as our CPP kernels can not handle this. The temporary workaround until we support transposition uses a hard coded sparsity threshold as there is no user config available in the canonicalization. The matrix representation selection functionality would also be a suitable measure but is not implemented in a suitable way for this at the moment.
@corepointer corepointer force-pushed the mat_mult_csr_csr_no_transpose branch from d11f24f to e6cd72a Compare August 9, 2024 14:14
@corepointer corepointer merged commit e6cd72a into daphne-eu:main Aug 9, 2024
2 checks passed
@corepointer
Copy link
Collaborator

Thx for submitting this PR @GuilloteauQ. I merged with some cleanup and test cases and added a commit that circumvents the missing transposition functionality. Since you implemented this already as mentioned in #793 I'd kindly ask you to provide this implementation as well. Ideally you can also modify the compiler logic to use the method with or w/o the transposition depending on the situation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature missing/requested features
Projects
None yet
3 participants