-
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
Split up mixed-join kernels source files #10671
Split up mixed-join kernels source files #10671
Conversation
Codecov Report
@@ Coverage Diff @@
## branch-22.06 #10671 +/- ##
================================================
+ Coverage 86.38% 86.41% +0.02%
================================================
Files 142 142
Lines 22334 22334
================================================
+ Hits 19294 19300 +6
+ Misses 3040 3034 -6
Continue to review full report at Codecov.
|
Here are the times for Here are the times after splitting up each of these into nulls and non-nulls source files: This improved the overall build time by about 10 minutes. And though this may be only a 10% improvement for a release build, this change reduces a debug build from 2 hours to 1.5 hours (~25%). |
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.
CMake changes LGTM
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 @davidwendt!
@gpucibot merge |
Split up
mixed_join_kernels.cu
andmixed_join_size_kernels.cu
to improve overall build time.Currently these take about 30 minutes each on the gpuCI build. Example of a recent build metrics report:
https://gpuci.gpuopenanalytics.com/job/rapidsai/job/gpuci-22-06/job/cudf/job/prb/job/cudf-cpu-cuda-build/CUDA=11.5/164/Build_20Metrics_20Report/
The nulls and non-nulls definitions are placed into separate source files.
The kernel source used for
mixed_join_kernels.cu
(both null and non-null) is moved tomixed_join_kernel.cuh
and the nulls definition is moved tomixed_join_kernel_nulls.cu
. For consistency themixed_join_kernels.cu
name is changed to justmixed_join_kernel.cu
since it now only contains one definition.This same pattern applies to
mixed_join_size_kernels.cu
splitting intomixed_join_size_kernel.cuh
,mixed_join_size_kernel_nulls.cu
andmixed_join_size_kernel.cu
No function behavior or actual code generation has changed. The source code has just moved into more source files to help better parallelize and speed up the build process. This improves compile time by 10% for a release build and ~25% for a debug build.