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 PR CI for cugraph-pyg and cugraph-dgl #59

Merged
merged 20 commits into from
Oct 30, 2024

Conversation

jameslamb
Copy link
Member

@jameslamb jameslamb commented Oct 21, 2024

Another steps towards completing the work started in #53

Fixes #15

Contributes to rapidsai/build-planning#111

Proposes changes to get CI running on pull requests for cugraph-pyg and cugraph-dgl

Notes for Reviewers

Workflows for nightly builds and publishing nightly packages are intentionally not included here. See #58 (comment)

Notebook tests are intentionally not added here... they'll be added in the next PR.

Pulls in changes from these other upstream PRs that had not been ported over to this repo:

@jameslamb jameslamb added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Oct 21, 2024
@jameslamb jameslamb added the DO NOT MERGE Hold off on merging; see PR for details label Oct 21, 2024
@alexbarghi-nv alexbarghi-nv removed the DO NOT MERGE Hold off on merging; see PR for details label Oct 25, 2024
@jameslamb jameslamb changed the title WIP: [DO NOT MERGE] add PR CI for cugraph-pyg and cugraph-dgl add PR CI for cugraph-pyg and cugraph-dgl Oct 28, 2024
@jameslamb jameslamb marked this pull request as ready for review October 28, 2024 21:32
@jameslamb jameslamb requested review from a team as code owners October 28, 2024 21:32
@jameslamb
Copy link
Member Author

🥳 this is now ready for review! Thanks very much for all the help @alexbarghi-nv .

Copy link
Member

@alexbarghi-nv alexbarghi-nv left a comment

Choose a reason for hiding this comment

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

Just looked this over one last time; I think this is ready to be merged. Thanks for all your hard work @jameslamb

.gitignore Outdated
Comment on lines 73 to 74
dataset/
datasets/
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we really need both of these paths? Why?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good point, there's an opportunity to simplify here.

I added dataset/ because I saw files created at python/cugraph-pyg/cugraph_pyg/dataset/ when running the cugraph-pyg examples locally.

Looks like that comes from here: https://github.com/snap-stanford/ogb/blob/f631af76359c9687b2fe60905557bbb241916258/ogb/nodeproppred/dataset.py#L13

I just pushed changes writing all those datasets to datasets/ instead, so we don't need to have both rules in gitignore.

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry mambabuild \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need ${RAPIDS_CONDA_BLD_OUTPUT_DIR} here? What packages is it supplying? I don't see pylibwholegraph in the dependencies of cugraph-pyg or cugraph-dgl.

Same for cugraph-dgl below.

Copy link
Member Author

Choose a reason for hiding this comment

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

You're totally right. pylibwholegraph is a testing dependency of both cugraph-pyg and cugraph-dgl, but not a build-time dependency, so --channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" is unnecessary. I just pushed 1202c36 removing it.

Comment on lines 35 to 36
# Used to skip certain examples in CI due to memory limitations
export CI_RUN=1
Copy link
Contributor

Choose a reason for hiding this comment

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

Typically the environment variable CI is set to true in CI contexts. https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#default-environment-variables

We could use that to avoid introducing a separate variable.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah great point! Looks to me like this was carried over from cugraph, but there it's only used for the narrow purpose of cugraph-pyg, so we can just simplify it here.

Did that in 1202c36

@bdice
Copy link
Contributor

bdice commented Oct 29, 2024

It seems like there are opportunities to move from CUDA 12.1 to 12.4 and drop the pytorch channel (in favor of conda-forge) in future work, but this seems close enough to move forward once the questions above are addressed.

@jameslamb
Copy link
Member Author

It seems like there are opportunities to move from CUDA 12.1 to 12.4 and drop the pytorch channel (in favor of conda-forge) in future work, but this seems close enough to move forward once the questions above are addressed.

Yep absolutely! That's a good next step. Thanks for reviewing, I do think we should move it forward once you feel like all your questions have been addressed. The sooner we get CI fully working in this repo, the sooner we can cut all this stuff out of the cugraph / wholegraph repos and work on such problems here, in one place.

@@ -9,7 +9,7 @@ cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../python/cugraph-pyg/cugraph_
pytest --cache-clear --benchmark-disable "$@" .

# Used to skip certain examples in CI due to memory limitations
export CI_RUN=1
export CI=true
Copy link
Contributor

Choose a reason for hiding this comment

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

If we export this, it means that local executions of this script will also skip those tests. I'm not sure if that is really intended or not.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think the cugraph developers intended that. @alexbarghi-nv introduced that in rapidsai/cugraph#4384

@jameslamb
Copy link
Member Author

/merge

@rapids-bot rapids-bot bot merged commit 31ee98f into rapidsai:branch-24.12 Oct 30, 2024
78 checks passed
@jameslamb jameslamb deleted the add-pyg-and-dgl-ci branch October 30, 2024 13:05
rapids-bot bot pushed a commit that referenced this pull request Nov 8, 2024
Closes #53

This pulls over the remaining changes from that PR... thought that was easier than fixing the merge conflicts between that and recent PRs.

* adds notebook testing
* adds all the remaining `build.sh` changes from #53 (mostly for interactive development)
* adds `cugraph-pyg` and `cugraph-dgl` tests in `conda-python-tests` (missed in #59)

## Notes for Reviewers

I left other comments explaining these changes inline.

Authors:
  - James Lamb (https://github.com/jameslamb)
  - Tingyu Wang (https://github.com/tingyu66)

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

URL: #62
rapids-bot bot pushed a commit that referenced this pull request Nov 22, 2024
As the issue around PyTorch being built without NumPy was fixed in conda-forge, we can now relax these upper bounds to allow PyTorch 2.4.

xref: conda-forge/pytorch-cpu-feedstock#254
xref: conda-forge/pytorch-cpu-feedstock#266
xref: rapidsai/cugraph#4615
xref: rapidsai/cugraph#4703
xref: #59

Authors:
  - https://github.com/jakirkham

Approvers:
  - Jake Awe (https://github.com/AyodeAwe)
  - Tingyu Wang (https://github.com/tingyu66)

URL: #75
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Improves an existing functionality non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

use rapids-build-backend for cugraph-gnn and cugraph-pyg
3 participants