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

[RELEASE] cuspatial v21.06 #409

Merged
merged 32 commits into from
Jun 9, 2021
Merged

[RELEASE] cuspatial v21.06 #409

merged 32 commits into from
Jun 9, 2021

Conversation

ajschmidt8
Copy link
Member

❄️ Code freeze for branch-21.06 and v21.06 release

What does this mean?

Only critical/hotfix level issues should be merged into branch-21.06 until release (merging of this PR).

What is the purpose of this PR?

  • Update documentation
  • Allow testing for the new release
  • Enable a means to merge branch-21.06 into main for the release

raydouglass and others added 30 commits March 25, 2021 14:22
[gpuCI] Forward-merge branch-0.19 to branch-0.20 [skip ci]
[gpuCI] Forward-merge branch-0.19 to branch-0.20 [skip ci]
[cuDF updated to Thrust v1.12.0 today](rapidsai/cudf#7923), which means we need to update too.

* Fixes GCC 9 RVO compile warning/error
* Removes our `make_zip_iterator` convenience fn because it's now part of Thrust

Thrust 1.11.0 included a new radix sort in CUB, so hopefully we see some nice speedups in our routines as well. Hooray!

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Keith Kraus (https://github.com/kkraus14)
  - Christopher Harris (https://github.com/cwharris)

URL: #379
cuDF 0.20 headers [now use C++17 features](rapidsai/cudf#7931), so we need to update to C++17 also.

We will also need to update CI images to use gcc-9, as C++17 support is incomplete in gcc-7 and gcc-8.

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Keith Kraus (https://github.com/kkraus14)
  - Christopher Harris (https://github.com/cwharris)
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #382
There were two issues causing the OOM failures we've seen in hausdorff:

1. `num_cartesian` overflowed when we squared the `int32_t num_points`
2. `thrust::inclusive_scan_by_key` seems to require the number of input elements is slightly less than `INT_MAX`

This PR fixes the above, updates counters to be uint32/uint64, and makes as many things as possible const and const-ref.

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Christopher Harris (https://github.com/cwharris)
  - H. Thomson Comer (https://github.com/thomcom)

URL: #378
I traced the `cuxfilter` build error shown below ([link](https://gpuci.gpuopenanalytics.com/job/rapidsai/job/gpuci-v0.20/job/cuxfilter/job/branches/job/cuxfilter-cpu-branch-build/32/console)) back to this `UPLOAD_CUSPATIAL` env var not being set. After further investigation, it looks like this `CUDA` version in the conditional statement needs to be updated.

This should get some `0.20` packages [uploaded to conda](https://anaconda.org/rapidsai-nightly/cuspatial/files) for `cuspatial`.


![image](https://user-images.githubusercontent.com/7400326/114922505-c1df8180-9df9-11eb-850f-11c5c1ee9437.png)

Authors:
  - AJ Schmidt (https://github.com/ajschmidt8)

Approvers:
  - Ray Douglass (https://github.com/raydouglass)

URL: #383
This changes the conda build directory to be a consistent directory when building packages. The resulting work directory from conda must be moved to a repo specific folder for project flash to work.

Authors:
  - Dillon Cullinan (https://github.com/dillon-cullinan)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)
  - Paul Taylor (https://github.com/trxcllnt)

URL: #368
Update CPM with a [fix for `FETCHCONTENT_BASE_DIR`](cpm-cmake/CPM.cmake#244).

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Keith Kraus (https://github.com/kkraus14)

URL: #386
Remove conda defaults channel in dev environments

Authors:
  - Jordan Jacobelli (https://github.com/Ethyling)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #391
Fixes this error that curiously only shows up when `CMAKE_BUILD_TYPE=Debug`:
```
cpp/src/spatial/hausdorff.cu:81:18: error: comparison of integer expressions of different signedness: 'const long unsigned int' and 'int' [-Werror=sign-compare]
cc1plus: all warnings being treated as errors
```

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Mark Harris (https://github.com/harrism)

URL: #392
Merge `branch-0.19` into `branch-0.20`
Remove progress output on conda packages upload

Authors:
  - Jordan Jacobelli (https://github.com/Ethyling)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)
  - Mark Harris (https://github.com/harrism)

URL: #396
Remove `rapidsai-nightly` conda channel when building main branch

Authors:
  - Jordan Jacobelli (https://github.com/Ethyling)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #395
Update the release script to take a parameter with the new version instead of calculating the new version.

Authors:
  - Ray Douglass (https://github.com/raydouglass)

Approvers:
  - Dillon Cullinan (https://github.com/dillon-cullinan)
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #398
Pass compiler environment variables to conda python build

Authors:
  - Jordan Jacobelli (https://github.com/Ethyling)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #400
* Update cuspatial version for calver
* Fix CMake `FindPackage(cudf)`

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Keith Kraus (https://github.com/kkraus14)
  - Ray Douglass (https://github.com/raydouglass)

URL: #401
This PR removes a variable that is no longer necessary for docs builds after the calver transition.

Authors:
  - AJ Schmidt (https://github.com/ajschmidt8)

Approvers:
  - Dillon Cullinan (https://github.com/dillon-cullinan)

URL: #402
Rewrites `quadtree_point_to_nearest_polyline` via thrust in the style of `quadtree_point_in_polygon` to get a 5x speed boost.

Benchmarked locally with NYC taxi 169M float32 points (RMM pool mode enabled):

```
quadtree_point_to_nearest_polyline (before)
1min ± 10.4 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

quadtree_point_to_nearest_polyline (after)
9.49 s ± 15 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
```

Timings for every routine in the benchmark after these changes:
```
quadtree_on_points
66.2 ms ± 64.3 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

polygon_bounding_boxes
322 µs ± 375 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)

join_quadtree_and_bounding_boxes
11.4 ms ± 8.19 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

quadtree_point_in_polygon
5.48 s ± 54.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

polyline_bounding_boxes
258 µs ± 2.37 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

join_quadtree_and_bounding_boxes
11.5 ms ± 17.5 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

quadtree_point_to_nearest_polyline
9.49 s ± 15 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
```

Authors:
  - Paul Taylor (https://github.com/trxcllnt)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - Christopher Harris (https://github.com/cwharris)

URL: #362
This PR updates the `0.20` references in `CHANGELOG.md` to be `21.06`.

Authors:
  - AJ Schmidt (https://github.com/ajschmidt8)

Approvers:
  - Dillon Cullinan (https://github.com/dillon-cullinan)

URL: #404
Simple PR that adds a `std::move` around passing a device_buffer into a column factory. This will be necessary once rapidsai/rmm/#775 is merged.

Authors:
  - Mark Harris (https://github.com/harrism)

Approvers:
  - Paul Taylor (https://github.com/trxcllnt)
  - Christopher Harris (https://github.com/cwharris)

URL: #403
…GeoArrow form. (#300)

This PR adds the `from_geopandas` feature, creating a `GeoSeries` object backed by GPU memory and GeoArrow format as discussed with GeoPandas team members.

This PR also provides `to_geopandas`, putting cuspatial GPU memory back into a GeoPandas `GeoSeries` object.

Authors:
  - H. Thomson Comer (https://github.com/thomcom)
  - Ray Douglass (https://github.com/raydouglass)

Approvers:
  - Christopher Harris (https://github.com/cwharris)
  - Keith Kraus (https://github.com/kkraus14)
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: #300
This PR updates the environment variable thats used to determine the `cuda_version` varaible in our conda recipes.

The `CUDA` environment variable is explicitly set by the Ops team in our Jenkins jobs, whereas `CUDA_VERSION` comes from the `nvidia/cuda` Docker images that we base our images from.

Authors:
  - AJ Schmidt (https://github.com/ajschmidt8)

Approvers:
  - Ray Douglass (https://github.com/raydouglass)

URL: #407
@ajschmidt8 ajschmidt8 requested review from a team as code owners June 4, 2021 15:44
@github-actions github-actions bot added cmake Related to CMake code or build configuration conda Related to conda and conda configuration libcuspatial Relates to the cuSpatial C++ library gpuCI Related to Continuous Integration / Automation java Python Related to Python code labels Jun 4, 2021
Copy link
Contributor

@thomcom thomcom left a comment

Choose a reason for hiding this comment

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

What happened to the rs in CHANGELOG.md?

@raydouglass raydouglass merged commit b5e0810 into main Jun 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cmake Related to CMake code or build configuration conda Related to conda and conda configuration gpuCI Related to Continuous Integration / Automation libcuspatial Relates to the cuSpatial C++ library Python Related to Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants