-
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
Move template parameter to function parameter in cudf::detail::left_semi_anti_join #8914
Move template parameter to function parameter in cudf::detail::left_semi_anti_join #8914
Conversation
Codecov Report
@@ Coverage Diff @@
## branch-21.10 #8914 +/- ##
================================================
- Coverage 10.67% 10.59% -0.09%
================================================
Files 110 116 +6
Lines 18271 19040 +769
================================================
+ Hits 1951 2017 +66
- Misses 16320 17023 +703
Continue to review full report at Codecov.
|
In #8815 I also created a |
Yes, thanks. I see there are 3 host-only utility functions that could be moved to a .cpp or .cu file. Perhaps I could add a |
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.
Do we know the run-time impact of these changes? My only concern here is that we may trade compile time performance for run-time performance.
Running |
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 @davidwendt .
@gpucibot merge |
The
semi_join.cu
takes about 6 minutes to compile on my Linux 18.04 desktop when doing a full build of libcudf. Thejoin_kind
template parameter used internally incudf::detail::left_semi_anti_join
forleft_semi_join
andleft_anti_join
APIs is not used in aconstexpr
or to pass to any other templated function. This PR moves the template parameter to a runtime parameter on the detail functions reducing the compile time forsemi_join.cu
by ~2x.Another improvement includes un-inlining the
is_trivial_join
utility function to reduce the compile time for files that includejoin_common_utils.hpp
.Finally, the device vector used as a gather map in
detail::left_semi_anti_join
was wrapped with acolumn_view
in order to calldetail::gather
without iterators. This allowed not including the heavygather.cuh
. This improved the compile time about 10% and reduced the object filesemi_join.cu.o
size by 2x.