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

Fix Merge Conflicts for 2024 #2040

Merged
merged 22 commits into from
Jan 27, 2022

Conversation

ajschmidt8
Copy link
Member

This PR includes 2 changes:

shwina and others added 22 commits January 20, 2022 16:55
…ai#2008)

Please do not merge until rapidsai/rmm#930 is merged.

For the reasons described in that PR, this API has changed to accept a `cuda.cudart.cudaDeviceAttr` object, `cuda` being the official CUDA Python bindings package.

Authors:
  - Ashwin Srinath (https://github.com/shwina)

Approvers:
  - Brad Rees (https://github.com/BradReesWork)
  - Rick Ratzel (https://github.com/rlratzel)
  - AJ Schmidt (https://github.com/ajschmidt8)

URL: rapidsai#2008
As we will remove Python 3.7, we need to update the Python version in the upload scripts

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

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

URL: rapidsai#2027
If the CSR + DCSR hybrid format is used to store a graph, the size of the offset array can be smaller than the number of vertices + 1. The previous code didn't consider this in calling cub's segmented sort. This PR fixes this mistake.

Authors:
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2028
The directory moving for `cugraph` was missing a `*` in the `cp` command which was creating the wrong directory hierarchy. Fixing this by using `mv` instead

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

Approvers:
  - Sevag Hanssian (https://github.com/sevagh)
  - AJ Schmidt (https://github.com/ajschmidt8)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2029
@rlratzel needed the SSSP C API squeezed into version 22.02.  Skipped the usual API PR and implementation PR to squeeze these together in the interest of time.  Note that SSSP is nearly identical (semantically) to BFS which is already in the C API using a similar API.

This PR provides:
* C API definition of SSSP
* C unit test for SSSP
* Implementation of the C API of SSSP (calling the underlying C++ implementation)

Authors:
  - Chuck Hastings (https://github.com/ChuckHastings)

Approvers:
  - Brad Rees (https://github.com/BradReesWork)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Rick Ratzel (https://github.com/rlratzel)

URL: rapidsai#2016
…apidsai#1863)

Originally this PR was about building FAISS shared libs via CPM, but @rlratzel mentioned cuGraph doesn't need FAISS anymore, and it'd be better if we remove it.

If we need FAISS again in the future, we can add `faiss::faiss` back to `target_link_libraries` without needing extra CPM configuration as it will be available [via raft](rapidsai/raft#345).

Edit: Removed more dependencies that we inherit from raft and/or rmm. Depends on rapidsai/raft#345.

Edit 2: I think the CUDA 11.0 thrust issue will be solved by rapidsai/rapids-cmake#98

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

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

URL: rapidsai#1863
After an internal discussion, it was determined the `Dockerfile` has not been in use since RAPIDS `devel` and `runtime` Docker images have been released.

The `ci/local` dir is also not working as originally intended (it was originally created to allow devs to reproduce CI failures locally) because the script does not support Project Flash. Since the script cannot be easily updated for Project Flash, it'll just be removed.

Authors:
  - Rick Ratzel (https://github.com/rlratzel)

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

URL: rapidsai#2017
Initial implementation of the `PropertyGraph` graph class and corresponding unit tests.
```
pG = cugraph.experimental.PropertyGraph()

# Add properties
pG.add_vertex_data(...)
pG.add_edge_data(...)

# Select specific vertices and edges based on conditions
selection = pG.select_vertices("(user_location==47906) | (user_location==78750)")
selection += pG.select_edges("_TYPE_=='referrals'")

# Extract a subgraph using selection
G = pG.extract_subgraph(selection=selection,
                        create_using=DiGraph_inst,
                        edge_weight_property="review_rating")

# run some algo on G, get algo_results

# annotate results with properties
algo_results_with_properties = pG.annotate_dataframe(algo_results, G, edge_vertex_id_columns=("from", "to"))

# Add algo results back to the PropertyGraph for further analysis
pG.add_edge_data(algo_results, type_name="referral_data", vertex_id_columns=("from", "to"))
```

closes rapidsai#1876

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Don Acosta (https://github.com/acostadon)

Approvers:
  - Don Acosta (https://github.com/acostadon)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#1999
Updated the README with latest algorithm info and update the release benchmark notebook to include additional comparisons

Authors:
  - Brad Rees (https://github.com/BradReesWork)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: rapidsai#2034
…reation and deletion (rapidsai#2023)

Python API updates to enable explicit control of internal `graph_t` creation and deletion. These changes will allow users who need more control over how the internal `graph_t` object is managed to have additional APIs to do so.  Current cugraph algos construct the appropriate `graph_t` at the C++ boundary, run the algo, and destroy the object each time.  This is more convenient and safer in some cases since it does not require the user to understand the necessary data format requirements for each algo (CSC, CSR, etc.), but it adds overhead to each algo call. If a user knows which algos will be called ahead of time and the relevant graph creation options to use, they can reuse the underlying `graph_t` object and eliminate the redundant creation/deletion expense.  These APIs also allow for benchmarks to measure only the algo run time without the initial graph creation time.

These changes are grouped into a category of enhancements sometimes referred to as "expert mode"

Changes here include:
* Updates to `pylibcugraph` to add the APIs from the `libcugraph_c` library for `graph_t` management and calling Pagerank and SSSP
* Addition of the `experimental` namespace to `pylibcugraph`, which is where some of the new APIs will be until we finalize decisions on names, signatures, etc.
* <s>Updates to cugraph Graph classes, Pagerank, and SSSP algos to call in to `pylibcugraph`</s>

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2023
…reation and deletion (rapidsai#2023)

Python API updates to enable explicit control of internal `graph_t` creation and deletion. These changes will allow users who need more control over how the internal `graph_t` object is managed to have additional APIs to do so.  Current cugraph algos construct the appropriate `graph_t` at the C++ boundary, run the algo, and destroy the object each time.  This is more convenient and safer in some cases since it does not require the user to understand the necessary data format requirements for each algo (CSC, CSR, etc.), but it adds overhead to each algo call. If a user knows which algos will be called ahead of time and the relevant graph creation options to use, they can reuse the underlying `graph_t` object and eliminate the redundant creation/deletion expense.  These APIs also allow for benchmarks to measure only the algo run time without the initial graph creation time.

These changes are grouped into a category of enhancements sometimes referred to as "expert mode"

Changes here include:
* Updates to `pylibcugraph` to add the APIs from the `libcugraph_c` library for `graph_t` management and calling Pagerank and SSSP
* Addition of the `experimental` namespace to `pylibcugraph`, which is where some of the new APIs will be until we finalize decisions on names, signatures, etc.
* <s>Updates to cugraph Graph classes, Pagerank, and SSSP algos to call in to `pylibcugraph`</s>

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2023
…reation and deletion (rapidsai#2023)

Python API updates to enable explicit control of internal `graph_t` creation and deletion. These changes will allow users who need more control over how the internal `graph_t` object is managed to have additional APIs to do so.  Current cugraph algos construct the appropriate `graph_t` at the C++ boundary, run the algo, and destroy the object each time.  This is more convenient and safer in some cases since it does not require the user to understand the necessary data format requirements for each algo (CSC, CSR, etc.), but it adds overhead to each algo call. If a user knows which algos will be called ahead of time and the relevant graph creation options to use, they can reuse the underlying `graph_t` object and eliminate the redundant creation/deletion expense.  These APIs also allow for benchmarks to measure only the algo run time without the initial graph creation time.

These changes are grouped into a category of enhancements sometimes referred to as "expert mode"

Changes here include:
* Updates to `pylibcugraph` to add the APIs from the `libcugraph_c` library for `graph_t` management and calling Pagerank and SSSP
* Addition of the `experimental` namespace to `pylibcugraph`, which is where some of the new APIs will be until we finalize decisions on names, signatures, etc.
* <s>Updates to cugraph Graph classes, Pagerank, and SSSP algos to call in to `pylibcugraph`</s>

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2023
…reation and deletion (rapidsai#2023)

Python API updates to enable explicit control of internal `graph_t` creation and deletion. These changes will allow users who need more control over how the internal `graph_t` object is managed to have additional APIs to do so.  Current cugraph algos construct the appropriate `graph_t` at the C++ boundary, run the algo, and destroy the object each time.  This is more convenient and safer in some cases since it does not require the user to understand the necessary data format requirements for each algo (CSC, CSR, etc.), but it adds overhead to each algo call. If a user knows which algos will be called ahead of time and the relevant graph creation options to use, they can reuse the underlying `graph_t` object and eliminate the redundant creation/deletion expense.  These APIs also allow for benchmarks to measure only the algo run time without the initial graph creation time.

These changes are grouped into a category of enhancements sometimes referred to as "expert mode"

Changes here include:
* Updates to `pylibcugraph` to add the APIs from the `libcugraph_c` library for `graph_t` management and calling Pagerank and SSSP
* Addition of the `experimental` namespace to `pylibcugraph`, which is where some of the new APIs will be until we finalize decisions on names, signatures, etc.
* <s>Updates to cugraph Graph classes, Pagerank, and SSSP algos to call in to `pylibcugraph`</s>

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2023
…reation and deletion (rapidsai#2023)

Python API updates to enable explicit control of internal `graph_t` creation and deletion. These changes will allow users who need more control over how the internal `graph_t` object is managed to have additional APIs to do so.  Current cugraph algos construct the appropriate `graph_t` at the C++ boundary, run the algo, and destroy the object each time.  This is more convenient and safer in some cases since it does not require the user to understand the necessary data format requirements for each algo (CSC, CSR, etc.), but it adds overhead to each algo call. If a user knows which algos will be called ahead of time and the relevant graph creation options to use, they can reuse the underlying `graph_t` object and eliminate the redundant creation/deletion expense.  These APIs also allow for benchmarks to measure only the algo run time without the initial graph creation time.

These changes are grouped into a category of enhancements sometimes referred to as "expert mode"

Changes here include:
* Updates to `pylibcugraph` to add the APIs from the `libcugraph_c` library for `graph_t` management and calling Pagerank and SSSP
* Addition of the `experimental` namespace to `pylibcugraph`, which is where some of the new APIs will be until we finalize decisions on names, signatures, etc.
* <s>Updates to cugraph Graph classes, Pagerank, and SSSP algos to call in to `pylibcugraph`</s>

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - Seunghwa Kang (https://github.com/seunghwak)
  - Brad Rees (https://github.com/BradReesWork)

URL: rapidsai#2023
@ajschmidt8 ajschmidt8 added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jan 27, 2022
@ajschmidt8 ajschmidt8 requested review from a team as code owners January 27, 2022 15:29
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@ajschmidt8 ajschmidt8 merged commit aa0704c into rapidsai:branch-22.04 Jan 27, 2022
@ajschmidt8 ajschmidt8 deleted the merge-22.02-into-22.04 branch January 27, 2022 15:50
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 non-breaking Non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.