Skip to content
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

Convert cudf::merge to use device_uvector instead of device_vector #8043

Merged
merged 4 commits into from
Apr 27, 2021

Conversation

harrism
Copy link
Member

@harrism harrism commented Apr 23, 2021

Converts cudf::merge to use device_uvector.

Contributes to #7287

Performance is improved:

Comparing /home/mharris/rapids/cudf/cpp/build/merge_before.json to /home/mharris/rapids/cudf/cpp/build/merge_after.json
Benchmark                                          Time             CPU      Time Old      Time New       CPU Old       CPU New
-------------------------------------------------------------------------------------------------------------------------------
Merge/pow2tables/2/manual_time                  -0.0831         -0.0791             0             0             0             0
Merge/pow2tables/4/manual_time                  -0.0924         -0.0930             1             1             1             1
Merge/pow2tables/8/manual_time                  -0.0813         -0.0808             4             3             4             3
Merge/pow2tables/16/manual_time                 -0.1172         -0.1170             9             8             9             8
Merge/pow2tables/32/manual_time                 -0.0790         -0.0790            19            18            20            18
Merge/pow2tables/64/manual_time                 -0.0757         -0.0757            46            43            46            43
Merge/pow2tables/128/manual_time                -0.0730         -0.0730           111           103           111           103

@harrism harrism requested a review from a team as a code owner April 23, 2021 03:37
@github-actions github-actions bot added the libcudf Affects libcudf (C++/CUDA) code. label Apr 23, 2021
@harrism harrism added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Apr 23, 2021
@harrism harrism added this to PR-WIP in v21.06 Release via automation Apr 23, 2021
@harrism harrism self-assigned this Apr 23, 2021
@codecov
Copy link

codecov bot commented Apr 23, 2021

Codecov Report

Merging #8043 (e19e138) into branch-0.20 (51336df) will decrease coverage by 0.04%.
The diff coverage is 83.27%.

Impacted file tree graph

@@               Coverage Diff               @@
##           branch-0.20    #8043      +/-   ##
===============================================
- Coverage        82.88%   82.84%   -0.05%     
===============================================
  Files              103      103              
  Lines            17668    17804     +136     
===============================================
+ Hits             14645    14750     +105     
- Misses            3023     3054      +31     
Impacted Files Coverage Δ
python/cudf/cudf/core/column/__init__.py 100.00% <ø> (ø)
python/cudf/cudf/io/orc.py 86.89% <ø> (ø)
python/cudf/cudf/utils/cudautils.py 57.75% <25.00%> (ø)
python/cudf/cudf/utils/dtypes.py 81.87% <41.66%> (-1.57%) ⬇️
python/cudf/cudf/core/column/numerical.py 94.43% <72.72%> (ø)
python/cudf/cudf/core/tools/datetimes.py 80.25% <74.69%> (-4.28%) ⬇️
python/cudf/cudf/core/groupby/groupby.py 91.55% <76.92%> (+0.11%) ⬆️
python/cudf/cudf/core/column/decimal.py 90.83% <77.27%> (-2.09%) ⬇️
python/dask_cudf/dask_cudf/backends.py 89.51% <80.00%> (-0.08%) ⬇️
python/cudf/cudf/core/column/column.py 88.64% <83.33%> (ø)
... and 27 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b733082...e19e138. Read the comment docs.

Copy link
Contributor

@karthikeyann karthikeyann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

cpp/include/cudf/detail/merge.cuh Show resolved Hide resolved
@@ -14,6 +14,7 @@
* limitations under the License.
*/

#include "rmm/cuda_stream_view.hpp"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<> preferred.

Suggested change
#include "rmm/cuda_stream_view.hpp"
#include <rmm/cuda_stream_view.hpp>

v21.06 Release automation moved this from PR-WIP to PR-Reviewer approved Apr 23, 2021
Copy link
Contributor

@rgsl888prabhu rgsl888prabhu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, have to update copyright

@harrism
Copy link
Member Author

harrism commented Apr 26, 2021

@karthikeyann @rgsl888prabhu please don't approve when changes are required, to prevent it getting merged before the fixes are made.

v21.06 Release automation moved this from PR-Reviewer approved to PR-Needs review Apr 26, 2021
cpp/src/merge/merge.cu Show resolved Hide resolved
@harrism harrism dismissed karthikeyann’s stale review April 26, 2021 22:01

Addressed and need to get debug build fixes in urgently.

v21.06 Release automation moved this from PR-Needs review to PR-Reviewer approved Apr 26, 2021
@harrism
Copy link
Member Author

harrism commented Apr 26, 2021

@gpucibot merge

@rapids-bot rapids-bot bot merged commit 9b2e456 into rapidsai:branch-0.20 Apr 27, 2021
v21.06 Release automation moved this from PR-Reviewer approved to Done Apr 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants