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

Add pairwise_linestring_intersection benchmark #12

Open
wants to merge 547 commits into
base: branch-0.16
Choose a base branch
from

Conversation

isVoid
Copy link
Owner

@isVoid isVoid commented Jul 14, 2023

Description

This PR adds benchmarks to pairwise_linestring_intersection.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

isVoid and others added 30 commits October 3, 2022 21:43
…ignored, fixes function bug (rapidsai#719)

Fixes a bug in the cdef function when `pyoptcol` is `None` and gets mishandled (raised as error). This error is captured in one of the pytests for `point_linestring_distance`. However, due to the cdef function is missing the `except` keyword, the exception gets ignored by the python interpreter and not reraised.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#719
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
…actor. (rapidsai#604)

This PR adds the memory_usage for the large, complex `GeoSeries` object, and tests for `GeoSeries` and `GeoDataframe`

This also includes a `GeoDataFrame` refactor that makes it possible for `cudf` to call `memory_usage` through `GeoDataFrame.super()` and works toward better integration with `cudf`.

Closes rapidsai#714

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

Approvers:
  - Michael Wang (https://github.com/isVoid)

URL: rapidsai#604
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
This PR moves the library wide overview section to top level `developer guide`. And updates link to c++ developer guide. As of creation, the link to c++ developer guide is not published yet. Should verify before merge.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#718
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
The new project boards should have every issue/PR within them. This workflow makes the addition of the issues/PRs automatic rather than the current manual process.

Authors:
  - Ben Jarmak (https://github.com/jarmak-nv)

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - Mark Harris (https://github.com/harrism)
  - Mark Sadang (https://github.com/msadang)

URL: rapidsai#618
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
After @isVoid fixed the bug that produced an error cell in `users.ipynb` it doesn't seem to be updating automatically - it is probably rendering the notebook, not executing it.

This PR updates the notebook with the removed bug.

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

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

URL: rapidsai#726
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
Currently cuspatial does not depend on anything defined in `cudf/detail/utility/cuda.cuh`, removing stale dependency.

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - H. Thomson Comer (https://github.com/thomcom)

URL: rapidsai#729
[gpuCI] Forward-merge branch-22.10 to branch-22.12 [skip gpuci]
Fix failed automerge (branch 22.12 merge 22.10)
…I to support multipoint to multipoint distance. (rapidsai#731)

closes rapidsai#704

Contributes to rapidsai#703 

This PR introduces `Multipoint_range` interface, and simplifies the API of `point_distance`. Also updates the `point_distance` to support multipoint-multipoint distance.

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - Mark Harris (https://github.com/harrism)

URL: rapidsai#731
Contributes to rapidsai#563 

Header-only refactoring of `cuspatial::trajectory_bounding_boxes`

Note the commit list is messy because it was originally based off of rapidsai#628 which was merged into 22.10.

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

Approvers:
  - Michael Wang (https://github.com/isVoid)
  - Paul Taylor (https://github.com/trxcllnt)

URL: rapidsai#741
This PR removes the stale issue labeler workflow

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

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

URL: rapidsai#751
)

This PR adds python bindings to Point-point distance. Depend on rapidsai#731 
Reverts change to comment: rapidsai#731 (comment)

Close rapidsai#578

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - H. Thomson Comer (https://github.com/thomcom)

URL: rapidsai#734
This PR bumps cudatoolkit version in conda recipe to 11.5 (and removes old versions). Updates `README.md` to reflect recent changes and verified build steps from bare metal.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#730
…ing distance API (rapidsai#747)

Follow up to rapidsai#731 , this PR introduces a new range object named `multilinestring_range` and simplifies the point-linestring distance API. Closes rapidsai#705 .

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - H. Thomson Comer (https://github.com/thomcom)

URL: rapidsai#747
…idsai#752)

This PR augments Cuspatial Vector Equality Test Utility with an extra parameter to allow user pass in pre-defined absolute error.
In many cases, cuspatial has to compare results with external libraries such as shapely or gdal. Since cuspatial allows user to pick computation precision based on input data (not a bug!), requiring the result to match external libraries within 4ULP is often too stringent, as external libraries often perform computation in different precisions. Adding the flexibility to specifiy abs error in test utilitiy makes it easy for developer to pick desired error range based on specific use cases.

This PR also introduces a test macro that shows lineno of failed tests.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#752
This PR replaces the existing markdown issue templates with [form-based YML templates](https://github.blog/changelog/2021-06-23-issues-forms-beta-for-public-repositories/). They provide a more interactive experience and can require certain fields be filled out prior to issue submission.

Authors:
  - Ben Jarmak (https://github.com/jarmak-nv)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - H. Thomson Comer (https://github.com/thomcom)
  - Ray Douglass (https://github.com/raydouglass)

URL: rapidsai#748
This is a port of rapidsai/cudf#12067. 

Original post:
> The current version of nvbench is not compatible with the latest changes to fmt. This PR decouples us from needing to wait on upstreaming the compatibility changes to nvbench. These changes are necessary for building libcudf benchmarks until then.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#783
The `new-issues-to-triage-project.yml` Action automatically adds issues to a few different classic GitHub boards that we're no longer using. 

This PR deletes the now-unnecessary action.

Authors:
  - Ben Jarmak (https://github.com/jarmak-nv)

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

URL: rapidsai#779
…apidsai#773)

This PR adds `float_eq_by_ulp` utility to allow practical near equality for floating point computation in device code.

In GIS application, near equal is often required due to rounding error of floating point and may wrong categorization of line collinearity or point on line test.

Using this test does not incur visible performance degradation:
```
$ python ~/scratch/nvbench/scripts/nvbench_compare.py naive.json ulp.json 
['naive.json', 'ulp.json']
# floating_point_equivalence_benchmark

## [0] Tesla V100-SXM2-32GB

|  FloatingPointType  |  NumFloats  |   Ref Time |   Ref Noise |   Cmp Time |   Cmp Noise |      Diff |   %Diff |  Status  |
|---------------------|-------------|------------|-------------|------------|-------------|-----------|---------|----------|
|         F32         |   100000    |   2.617 us |      55.95% |   2.478 us |      53.16% | -0.139 us |  -5.30% |   PASS   |
|         F32         |   1000000   |   2.508 us |      59.48% |   2.471 us |      53.17% | -0.037 us |  -1.49% |   PASS   |
|         F32         |  10000000   |   2.509 us |      58.42% |   2.553 us |      52.45% |  0.044 us |   1.76% |   PASS   |
|         F32         |  100000000  |   2.612 us |      56.19% |   2.483 us |      55.23% | -0.129 us |  -4.94% |   PASS   |
|         F64         |   100000    |   2.501 us |      72.35% |   2.483 us |      54.59% | -0.018 us |  -0.72% |   PASS   |
|         F64         |   1000000   |   2.514 us |      60.63% |   2.564 us |      55.11% |  0.050 us |   1.98% |   PASS   |
|         F64         |  10000000   |   2.609 us |      56.87% |   2.492 us |      56.80% | -0.117 us |  -4.48% |   PASS   |
|         F64         |  100000000  |   2.519 us |      61.38% |   2.495 us |      57.26% | -0.025 us |  -0.98% |   PASS   |
```

Note that the run time is very small in time scale so the result is very noisy. The average time difference is very small though.

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - Mark Harris (https://github.com/harrism)

URL: rapidsai#773
…nge`, adds support to multilinestring distance (rapidsai#755)

Note, this is the first part of `pairwise_linestring_distance` refactoring, part 1 of PR: rapidsai#753

Depends on rapidsai#752 

Contributes to rapidsai#706, rapidsai#703

Closes rapidsai#745

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - Mark Harris (https://github.com/harrism)

URL: rapidsai#755
Closes rapidsai#772 , Address various issue with vector equivalent utility.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#777
)

Closes rapidsai#563 

In addition to refactoring to header-only API, this PR changes the implementation to use `thrust_transform` (two input version) instead of `thrust::adjacent_difference`. This simplifies the code a bit and eliminates the need for the `duplicate_first_element_iterator`, which was a bit confusing.

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

Approvers:
  - Michael Wang (https://github.com/isVoid)

URL: rapidsai#769
GPUtester and others added 30 commits May 31, 2023 09:08
Forward-merge branch-23.06 to branch-23.08
This PR adds nvbenchmark suite benchmarks to pariwise_linestring_polygon distance. This PR also adds `multilinestring_array_generator` and reuses in both linestring distance and linestring-polygon distance.

The addition of `multilinestring_array_generator` completes the `geometry_generator.cuh`, which now has generators for `multipolygons`, `multilinestrings` and `multipoints`.

I have an additional driver python suite that helps parameterizing this nvbench test suite. Not sure where to put them for now.
https://gist.github.com/isVoid/99ce3f6425528217da78118ab2653959

Contributes to rapidsai#259 
Closes rapidsai#1160

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#1153
Forward-merge branch-23.06 to branch-23.08
…multilinestring ranges (rapidsai#1134)

closes rapidsai#1055

This PR adds `multilinestring_segment_manager` owning class to track the lifetime of intermediate allocations that has to do with segment iterators. In addition `multilinestring_segment_range` is added as the non-owning class to the previous class to provide iterators to the segments. The syntax to use this object is like:

```c++
auto segment_manager = multilinestrings._segments(stream);
auto segment_range = segment_manager.range();
```
Then a user can easily access the segments in the multilinestrings with:
```c++
for (auto seg : segment_range) {
    auto length = sqrt(dot(seg.a, seg.b));
}
```

Secondly, this PR includes tests that has empty geometry collections in the input, linestring_polygon_distance now correctly computes nans for these input pairs.

In addition, `CUSPATIAL_EXPECTS_VALID_MULTI*_SIZES` is relaxed. Valid polygon and ring sizes are only implicitly required but not checked via the size of the arrays since they are insufficient checks. Accordingly, some tests are also relaxed.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#1134
Forward-merge branch-23.06 to branch-23.08
…se_polygon_distance` (rapidsai#1145)

closes rapidsai#1146

Add missing API examples for 23.06 release.

 - Added example for `pairwise_linestring_polygon_distance`, `pairwise_polygon_distance`

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#1145
This PR configures `cuspatial` docs builds to also run nightly (not just on PR merges only)

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

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

URL: rapidsai#1141
Forward-merge branch-23.06 to branch-23.08
Initial draft PR to build statically linked cuspatial wheels.

Closes rapidsai#869.

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

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - Bradley Dice (https://github.com/bdice)
  - Ray Douglass (https://github.com/raydouglass)
  - Mark Harris (https://github.com/harrism)
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: rapidsai#1148
We recently created new scripts for building documentation with GitHub Actions.

This PR removes the old scripts that were used by Jenkins and are no longer in use.

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

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

URL: rapidsai#1169
Fix branch-23.06 forward-merge into branch-23.08
Forward-merge branch-23.06 to branch-23.08
Updates `update-version.sh` to follow the pattern from rapidsai/cugraph#3638

Required for `23.06` because `python/cuspatial/pyproject.py` does not exist thus breaking the script. This means any hotfixes to this version will have issues during release.

Also updates a version in `cpp/doxygen/Doxyfile` which was outdated.

Skipped CI since this script is not tested by CI.

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

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

Forward merge `branch-23.06` into `branch-23.08`
This PR updates the `build_docs.sh` script to use the new consolidatory `rapids-upload-script` [shared script](rapidsai/gha-tools#56). 

The shared script enables docs uploads to applicable S3 buckets for branch. nightly and PR builds.

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

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

URL: rapidsai#1181
Closes rapidsai#1142 

This PR adds a few bugfixes and optimizations that improve performance when large `GeoSeries` are used with binary predicates. It also corrects a few errors in the predicate logic that were revealed when the size of the feature space increased by combining all possible features in the `dispatch_list`.

Changes:
`contains.py`
- Add `pairwise_point_in_polygon` and steps to resemble `quadtree` results.

`contains_geometry_processor.py`
- Drop `is True` and add a TODO for future optimization.

`feature_contains.py`
- Refactor `_compute_polygon_linestring_contains` to handle `GeoSeries` containing `LineStrings` of varying lengths.

`feature_contains_properly.py`
- Add `pairwise_point_in_polygon` as default mode with documentation.
- Add `PointMultiPointContains` which is needed by internal methods.

`feature_crosses.py`
- Drop extraneous `intersection`

`feature_disjoint.py`
- Add `PointPointDisjoint` and drop extraneous `intersections`.

`feature_equals.py`
- Fix LineStringLineStringEquals which wasn't properly handling LineStrings with varying lengths.

`feature_intersects.py`
- Drop extraneous `intersection`

`feature_touches.py`
- Fix LineStringLineStringTouches. It is slow and needs further optimization.
- Fix PolygonPolygonTouches. It is also slow and needs further optimization.

`geoseries.py`
- Drop index from `input_types`.
- Fix `point_indices` for `Point` type.
- Optimize `reset_index` which was doing a host->device copy.

`binpred_test_dispatch.py`
- Add test case
`test_binpred_large_examples.py`
- Test large sets of all the dispatched tests together.

`test_equals_only_binpreds.py`
- Test corrections to input_types indexes.

`test_binpred_large_examples.py`
- Use the features from `test_dispatch` to create large `GeoSeries` and compare results with `GeoPandas`.

`test_feature_groups.py`
- Test each of the `dispatch_list` feature sets combined into a single GeoSeries.

`binpred_utils.py`
- Don't count hits when point and polygon indexes don't match (a bug in `_basic_contains_count`).
- Optimize mask generation in `_points_and_lines_to_multipoints`

`column_utils.py`
- Optimize `contains_only` calls.

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

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

URL: rapidsai#1166
closes rapidsai#1176 

This PR:
- Removes the https://github.com/rapidsai/cuspatial/labels/Needs%20Triage label from the issue templates
- Adds in a GHA that automatically adds the label, and comments automatically when an issue is filed from someone outside the team.

~TODO:
Before we merge, we need to remove the `? -` from the https://github.com/rapidsai/cuspatial/labels/Needs%20Triage label, it breaks some integrations we have.~ DONE

Authors:
  - Ben Jarmak (https://github.com/jarmak-nv)
  - Mark Harris (https://github.com/harrism)

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

URL: rapidsai#1177
close rapidsai#1194
This PR removes `osmnx` dependency and instead use a small locally hosted dataset.

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - H. Thomson Comer (https://github.com/thomcom)
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: rapidsai#1195
Updates minimum required CMake version to 3.26.4

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)
  - H. Thomson Comer (https://github.com/thomcom)

URL: rapidsai#1196
This PR removes scripts under `python/cuspatial/cuspatial/demo`. This decision is made mainly due to:
1. The scripts are outdated, most of them are using deprecated python APIs.
2. The scripts only demonstrates a single use of cuspatial API, not an end-to-end use case. These demos are sufficiently covered by `user_guide` at the moment. And is not worth converting into notebooks.

Closes rapidsai#209 
Closes rapidsai#312 
Closes rapidsai#341 
Closes rapidsai#885

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#1180
…d Remove Stale Infomation (rapidsai#1179)

closes rapidsai#1174 

Minor improvement:

- updates build development environment to point to devcontainers, not rapids-compose.
- Move point-linestring python test to correct location.

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - Ben Jarmak (https://github.com/jarmak-nv)
  - Mark Harris (https://github.com/harrism)

URL: rapidsai#1179
This PR fixes a small typo in pairwise_linestring_distance

Authors:
  - Michael Wang (https://github.com/isVoid)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - H. Thomson Comer (https://github.com/thomcom)

URL: rapidsai#1199
closes rapidsai#707 

This PR simplifies `point_in_polygon` and `pairwise_point_in_polygon` API using `multipoint_range` and `multipolygon_range`. While these range methods supports a pair of multi geometry semantics, in this PR I'm not really targeting to create an API that works with multipoint-in-multipolygon semantics (such as "any point in any polygon", or "all points in any polygon", that sort of semantics). Therefore, this PR introduces `contains_only_single_geometry` method in `multipoint_range` and `multipolygon_range` that provides compile-time check for API that only want to work single-type geometry ranges. There are caveats to this introduction, see *caveats* section below.

This refactor results in a net decrease in LOC, and the compatibility layer for `is_point_in_polygon` is removed. The API dries up to a point where there's no raw kernel anymore.

In addition, previous `pairwise_point_in_polygon` API stores the row wise result in an int32_t per pair. Since it's only storing booleans, this PR uses `uint8_t` instead. This saves memory and increases throughputs.

### Caveats
`contains_only_single_geometry` method is an over-constrained method comparing to what it's really testing. A multipoint range can have a materialized column of integer sequences and still represent a single geometry column. The reason behind this refactor is that the original point-in-polygon test explicitly requires (by the number of arguments) that only single geometry columns accepted by the API. This means developers know at compile time that the geometry used in the API are constructed this way. `contains_only_single_geometry` is a `constexpr` method and verifies developers construction at compile time as well. This maintains the developer expectation while allowing `multi*_range` to be retrofit into the modern APIs.

Authors:
  - Michael Wang (https://github.com/isVoid)

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

URL: rapidsai#1192
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.