-
Notifications
You must be signed in to change notification settings - Fork 915
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
Resolve degenerate performance in create_structs_data
#14761
Resolve degenerate performance in create_structs_data
#14761
Conversation
Signed-off-by: Suraj Aralihalli <[email protected]>
Example structure definition: In the code:
The
The superimpose_nulls_no_sanitize function recursively applies a correct null mask to all nested children (C_2) at line cudf/cpp/src/structs/utilities.cpp Line 266 in 0710335
This function uses make_structs_column to reconstruct the parent column (P) which applies C_1's null mask to its children (C_2) at line cudf/cpp/src/structs/utilities.cpp Line 274 in 0710335
I believe this redundancy can be eliminated by removing the code at line 266. |
Thank you @karthikeyann for sharing scope based NVTX ranges #11864 (comment). This utility greatly helped in debugging. |
/ok to test |
Is there a benchmark that could be run to show the performance improvement here? |
I ran the |
/ok to test |
How come there were 130k calls to I think this change should include a new benchmark. |
Signed-off-by: Suraj Aralihalli <[email protected]>
Absolutely @vuule! It would be interesting to derive the relationship between calls to
|
Signed-off-by: Suraj Aralihalli <[email protected]>
Comparing benchmarking results:
|
/ok to test |
Signed-off-by: Suraj Aralihalli <[email protected]>
…into struct_create_perf
/ok to test |
/ok to test |
/merge |
Resolves issue #14716
superimpose_nulls_no_sanitize
function, addressing performance issues inmake_structs_column
.STRUCT_CREATION_NVBENCH
to assess the performance of thecreate_structs_data
function.Checklist