-
Notifications
You must be signed in to change notification settings - Fork 849
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
Occupancy improvement for Hash table build #15700
base: branch-24.06
Are you sure you want to change the base?
Conversation
I think the approach of specializing the type dispatcher is very cumbersome and will lead to a lot of code replication. Currently, I have the conditional dispatch working for |
/ok to test |
/ok to test |
@tgujar I've updated the docs to unblock CI. Have you noticed any performance regressions for other use cases? It seems that it improves the performance for mixed join but the performance drops significantly in other cases using row hasher. |
id_to_type<type_id::DECIMAL128>, | ||
id_to_type<type_id::DECIMAL64>, | ||
id_to_type<type_id::DECIMAL32>, |
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 don't think decimal types are complex type. They are just a wrapper around some integer type.
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.
Equality operator for Decimal will perform scaling which uses exponentiation.
CUDF_HOST_DEVICE inline bool operator==(fixed_point<Rep1, Rad1> const& lhs, |
I see a reduction in register usage if I comment out decimal types in #15502. I think we can still decide on the types excluded in the branches later on
/ok to test |
@tgujar Could you take a look at the failing tests? |
/ok to test |
/ok to test |
* @throw cudf::logic_error if the input tables were preprocessed to transform any nested children | ||
* columns into integer columns but `PhysicalElementComparator` is not | ||
* @throw cudf::logic_error if the input tables were preprocessed to transform any nested | ||
* children columns into integer columns but `PhysicalElementComparator` is not |
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.
It appears that a significant number of changes to this file are due to reformatting comments.
Would it be possible to undo those changes? This particular change is certainly not desirable.
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.
Makes sense, will fix. This was caused because of the clang-format extension on vscode
This PR needs to be rebased on branch-24.08. |
Specializing both the comparator and the hasher drops the register usage to 54 instead of the expected 46 for the mixed semi join case. Investigating why the register pressure is different from commenting out the code paths. |
Description
Prototype implementation for: #15502
Checklist