-
Notifications
You must be signed in to change notification settings - Fork 209
cuda.parallel: Check compiled code for LDL/STL instructions in tests #4472
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
Conversation
def _get_cubin(self): | ||
return self.build_data.cubin[:self.build_data.cubin_size] |
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.
@oleksandr-pavlyk I'm curious if you have any suggestions for how to be a bit more DRY about this. Currently I am defining this method in all the *BuildResult
cdef classes.
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.
Inheritance doesn't quite work as the member build_data
is distinct in each of the classes.
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.
I am afraid I do not see any other way than defining this function for every *BuildResult
class. If we had some uniformity in data layout of build_data
, for example, const char * cubin
and size_t cubin_size
are first two elements of the build_result
C struct we could at least write a helper function that takes a base C struct in and produce memview, and could call that helper function from every _get_cubin
method definition. This would not save much though.
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.
Okay, thank you for double checking. Let's leave it as it is for now. Thanks!
monkeysession.setattr( | ||
cuda.parallel.experimental._cccl_interop, | ||
"_check_sass", | ||
False, # todo: change to True |
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.
Note to reviewers: changing this to True
is what ensures that compile results are checked for LDL/STL instructions.
🟩 CI finished in 26m 57s: Pass: 100%/3 | Total: 30m 30s | Avg: 10m 10s | Max: 21m 06s
|
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
CUDA Experimental | |
stdpar | |
+/- | python |
CCCL C Parallel Library | |
Catch2Helper |
Modifications in project or dependencies?
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
CUDA Experimental | |
stdpar | |
+/- | python |
CCCL C Parallel Library | |
Catch2Helper |
🏃 Runner counts (total jobs: 3)
# | Runner |
---|---|
3 | linux-amd64-gpu-rtx2080-latest-1 |
python/cuda_parallel/cuda/parallel/experimental/_cccl_interop.py
Outdated
Show resolved
Hide resolved
python/cuda_parallel/cuda/parallel/experimental/_cccl_interop.py
Outdated
Show resolved
Hide resolved
🟩 CI finished in 22m 47s: Pass: 100%/3 | Total: 25m 37s | Avg: 8m 32s | Max: 16m 39s
|
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
CUDA Experimental | |
stdpar | |
+/- | python |
CCCL C Parallel Library | |
Catch2Helper |
Modifications in project or dependencies?
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
CUDA Experimental | |
stdpar | |
+/- | python |
CCCL C Parallel Library | |
Catch2Helper |
🏃 Runner counts (total jobs: 3)
# | Runner |
---|---|
3 | linux-amd64-gpu-rtx2080-latest-1 |
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.
LGTM. Thanks @shwina
Description
This PR adds infrastructure that ensures that compiled code is checked for LDL/STL instructions similar to c.parallel during the execution of pytests.
When this is enabled, I noticed several test failures:
These failures are addressed in the follow-up PR #4249. Until then, I have turned off the automatic checking for LDL/STL in this PR.
Checklist