[sparse] test out-of-bound csr/coo indices on GPU #14536
Merged
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.
I found that the coo lowering rules don't offer any good avenue for working with padded sparse representations because (1) if out-of-bound indices are present it leads to out-of-bound memory access, and (2) if duplicate indices are present, cusparse is inconsistent on whether it treats those duplicated indices as summed, or as overwriting each other.
For this reason, I don't think there's any way to devise any efficient padded representation that will work correctly with all lowering rules.
The solution is to add another static flag that tracks whether the matrix is padded, and only lower to GPU when that is known to be false.