-
Notifications
You must be signed in to change notification settings - Fork 118
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
Added new specialized sparse-matrix extensions. #924
Conversation
a929e5f
to
ad17267
Compare
ad17267
to
6ceedf0
Compare
c0ba115
to
f944ca3
Compare
aa46563
to
0bd56f2
Compare
Src/ILGPU.Algorithms/MatrixOperations/MaskedSparseMatrixExtensions.cs
Outdated
Show resolved
Hide resolved
Src/ILGPU.Algorithms/MatrixOperations/MaskedSparseMatrixExtensions.cs
Outdated
Show resolved
Hide resolved
356eb44
to
46fbc48
Compare
79b48df
to
ccc0f34
Compare
Src/ILGPU.Algorithms/MatrixOperations/MaskedSparseMatrixExtensions.cs
Outdated
Show resolved
Hide resolved
Src/ILGPU.Algorithms/MatrixOperations/MaskedSparseMatrixExtensions.cs
Outdated
Show resolved
Hide resolved
Src/ILGPU.Algorithms/MatrixOperations/MaskedSparseMatrixExtensions.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks pretty good. I suggested a few minor changes.
I think the big piece that is missing here is documentation as to the motivation of this class and what problem it solves. We know, but I think users will be mystified.
ab37a3e
to
c45f3c1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. As mentioned, I think the only thing that is missing is a piece of documentation explaining why end-users would want to use this / what problem this solves.
…rocessing on GPUs using multiple streams.
…shapes in GPU memory.
…dense matrices into sparse ones in GPU memory.
Absolutely! I think we should create a sample in a separate PR and add further documentation to the wiki before the final release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. Updated tests look good.
This PR adds new helper classes and methods to process sparse matrices on the GPU while supporting specific masking operations to avoid computation of intermediate values. It also adds add a newly created
ConcurrentStreamProcessor
to perform generic operations concurrently on multiple concurrent GPU streams.A sample use case is shown below that multiplies masked sparse matrixes. There are two options available:
Sample for accelerated creation of huge sparse matrices on accelerators using the newly added extensions:
Note: This PR requires PR #989 to be merged.
Co-authored by @corwinjoy who wrote the initial POC.