-
Notifications
You must be signed in to change notification settings - Fork 916
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
Separate MurmurHash32 from hash_functions.cuh #13681
Separate MurmurHash32 from hash_functions.cuh #13681
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.
Approving ops-codeowner
file changes
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.
Approving with minor questions/suggestions.
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 could see an argument to move the hash_combine
utility functions like from this file into hashing/detail/hash_functions.cuh
. What do you think?
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.
Some of these are used by .cpp files so I did not want them to include hash_functions.cuh
which has some CUDA intrinsics in it.
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.
FWIW Those CUDA intrinsics for funnel shifts don't actually compile to fewer instructions. Originally I thought it did make a difference, but I double checked this a while back and didn't see any change in the PTX/SASS. I just haven't had a chance to go back and replace those. If it helps, we can replace the intrinsics with the equivalent shifting code (which is CPU-compatible) and move them to an appropriate location.
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.
We can address this in a follow-up PR.
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.
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 to me.
Only couple of minor questions to be clarified. could be addressed in future PR too.
/merge |
Re-label as breaking as it causes breaking in spark-rapids-jni. |
Description
Moves the
MurmurHash32
class definition fromhash_functions.cuh
to a newmurmur32.cuh
file.Also moves the new file and the
hash_functions.cuh
fromcpp/include/cudf/detail/utilities/
tocpp/include/cudf/hashing/detail
The hash functions were redeclared from the
cudf::detail
namespace to thecudf::hashing::detail
namespace.The remaining changes are side-effects of making the above changes.
This PR is a follow on to PR #13626
No new logic or functions have changed. Only internal detail headers have been refactored.
Checklist