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
Enable negative indexing for cuda atomic operations #6695
Conversation
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.
Many thanks for the PR! I think this is looking great in general, with just one suggestion / question:
- Tests pass for me locally with hardware (Quadro RTX 8000), the simulator, and under cuda-memcheck with no errors.
- The testing additions look good - I see that testing with negative indexing is only added for a subset of test cases, which I think covers the new functionality sufficiently without bloating the set of tests inordinately (as opposed to adding negative indexing to every single test).
- I'm happy with the additions being made to existing test cases, as it enables reuse of their code instead of either duplicating the rest of the test body or adding another level of indirection in the testing.
- The style of the changes looks good / seems to be in keeping with the surrounding code.
One thing I'd like to see - either I've missed it or it's not present - is testing of wraparound on arrays in global memory. In the test changes, I can only see tests for negative indexing on shared memory - if negative indexing on global memory is tested here, can you indicate where that testing is please? If not, would it be possible to add testing on negative indexing on global memory in a similar fashion to the testing on shared memory?
Many thanks again!
My bad, seems I missed global memory tests. I will update them in a minute. |
Many thanks for the update! The test fail is just a conda error - could this have a re-run on Azure Pipelines please? (@esc / @stuartarchibald) |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Many thanks for adding the tests with global memory - they run fine for me locally with hardware, the simulator and cuda-memcheck. This now looks good to me!
@esc could this have a CUDA buildfarm run please?
@gmarkall seems like AZP fine this time around. |
Running BF: |
BF passed on this. |
@stuartarchibald @sklam would you like to take a look at this before it goes RTM? |
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.
Thanks for the patch @ashutoshvarma looks good, thanks for reviewing @gmarkall
Ref #6496
As titled, enables wraparound in CUDA atomic operations.
Instead of adding new tests, I modified existing add atomics tests
test_atomic_add_*
to prevent unnecessary redundancy in test code.If the separate test is a must then I can add that too.