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 CI for cuGraph-GNN #53

Closed
wants to merge 59 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
946b239
add ci files
alexbarghi-nv Oct 11, 2024
db06ee2
update dependencies file
alexbarghi-nv Oct 11, 2024
c5813fe
add github files
alexbarghi-nv Oct 11, 2024
4e29cac
add copy pr bot
alexbarghi-nv Oct 11, 2024
1fe2c11
fix newline
alexbarghi-nv Oct 11, 2024
e978611
add ops bot
alexbarghi-nv Oct 11, 2024
ea6dcd4
fix conflict
alexbarghi-nv Oct 11, 2024
3bc9dcc
fix conflict
alexbarghi-nv Oct 11, 2024
d34ea2f
fix pr.yaml
alexbarghi-nv Oct 11, 2024
2a0827d
add wheel test script
alexbarghi-nv Oct 11, 2024
64c60a4
fix style
alexbarghi-nv Oct 11, 2024
80370eb
fix newlines (again)
alexbarghi-nv Oct 11, 2024
314461c
fix yamls
alexbarghi-nv Oct 11, 2024
5d13fd8
change perms
alexbarghi-nv Oct 11, 2024
1adfe92
fix build.sh
alexbarghi-nv Oct 11, 2024
c57490d
remove extra repos
alexbarghi-nv Oct 11, 2024
d5571c6
fixes to dependencies.yaml
alexbarghi-nv Oct 11, 2024
b99122d
fix
alexbarghi-nv Oct 11, 2024
164d1a2
update gitignore
alexbarghi-nv Oct 11, 2024
8f303cc
bump NCCL floor to 2.19
jameslamb Oct 11, 2024
96684a0
package license
jameslamb Oct 11, 2024
58806fd
pytorch pins, some CI script cleanup
jameslamb Oct 11, 2024
66bcde6
set cuda version 12.5
alexbarghi-nv Oct 11, 2024
5db48ab
update cugraph-dgl and cugrpah-pyg wheel-testing scripts to match wha…
jameslamb Oct 11, 2024
78c4db4
Merge branch 'add-ci' of https://github.com/alexbarghi-nv/cugraph-gnn…
alexbarghi-nv Oct 11, 2024
b851de4
fix wheel build args
alexbarghi-nv Oct 11, 2024
8ecc9ba
remove old steps from wheel build
alexbarghi-nv Oct 11, 2024
7676b5d
remove unused cmake args
alexbarghi-nv Oct 11, 2024
afef793
pull the right branch of raft
alexbarghi-nv Oct 11, 2024
201aee9
install pylibwholegraph
alexbarghi-nv Oct 11, 2024
0fbe438
remove pylibcugraph reference
alexbarghi-nv Oct 11, 2024
1d04ad0
add smoke test notebook
alexbarghi-nv Oct 11, 2024
d480946
disable cpp checks
alexbarghi-nv Oct 11, 2024
738f6c4
fix tests
alexbarghi-nv Oct 14, 2024
b6e61c2
move notebook to inner directory
alexbarghi-nv Oct 14, 2024
c278d97
add dataset script
alexbarghi-nv Oct 14, 2024
a87bebd
set perms on script
alexbarghi-nv Oct 14, 2024
09cc676
add torch to test script
alexbarghi-nv Oct 14, 2024
c915472
bump pytorch to 12.4
alexbarghi-nv Oct 14, 2024
a78dc8d
fix git config, coverage
alexbarghi-nv Oct 14, 2024
46f0323
update matrix filter for pylibwholegraph wheel tests
alexbarghi-nv Oct 14, 2024
4c4d3c0
only install build wheels, add karate file
alexbarghi-nv Oct 14, 2024
065c5df
add pytest-forked, try to fix wheel-testing scripts
jameslamb Oct 15, 2024
45ca789
use rapids-build-backend
jameslamb Oct 15, 2024
afb87d4
more dependencies.yaml changes
jameslamb Oct 15, 2024
dce3e1e
skip rapids-build-backend cuda versioning for conda builds
jameslamb Oct 15, 2024
8a3fda8
add same mkl pin that wholegraph CI uses
jameslamb Oct 15, 2024
4263e51
add pytorch to test environment (wholegraph does not declare a depend…
jameslamb Oct 15, 2024
15f913b
remove pytorch-cuda
jameslamb Oct 15, 2024
4d66d77
consolidate 'cugraph' dependency, avoid unsuffixed use for pyproject/…
jameslamb Oct 15, 2024
87a840f
always generate a .py script for notebook tests, pin version of nbcon…
jameslamb Oct 15, 2024
08c4079
fix test paths
jameslamb Oct 16, 2024
784df53
merge branch-24.12
jameslamb Oct 16, 2024
aa6ec91
merge branch-24.12
jameslamb Oct 17, 2024
e8e9b65
merge branch-24.12
jameslamb Oct 21, 2024
e7abf77
setuptools
jameslamb Oct 21, 2024
237563c
add missing files, update tests
alexbarghi-nv Oct 22, 2024
934575d
merge branch-24.12
jameslamb Oct 28, 2024
be6fc5a
remove smoke-testing scripts
jameslamb Oct 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: build

on:
push:
branches:
- "branch-*"
tags:
- v[0-9][0-9].[0-9][0-9].[0-9][0-9]
workflow_dispatch:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string
build_type:
type: string
default: nightly

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
cpp-build:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
node_type: cpu32
python-build:
needs: [cpp-build]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
upload-conda:
needs: [cpp-build, python-build]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
wheel-build-cugraph-dgl:
needs: wheel-publish-pylibwholegraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
script: ci/build_wheel_cugraph-dgl.sh
wheel-publish-cugraph-dgl:
needs: wheel-build-cugraph-dgl
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
package-name: cugraph-dgl
wheel-build-cugraph-pyg:
needs: wheel-publish-pylibwholegraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
script: ci/build_wheel_cugraph-pyg.sh
wheel-publish-cugraph-pyg:
needs: wheel-build-cugraph-pyg
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
package-name: cugraph-pyg
wheel-build-pylibwholegraph:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
script: ci/build_wheel_pylibwholegraph.sh
wheel-publish-pylibwholegraph:
needs: wheel-build-pylibwholegraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
package-name: pylibwholegraph
69 changes: 69 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,17 @@ jobs:
- checks
- conda-cpp-build
- conda-cpp-tests
# - conda-cpp-checks
- conda-notebook-tests
- conda-python-build
- conda-python-tests
- wheel-build-pylibwholegraph
- wheel-tests-pylibwholegraph
- wheel-build-cugraph-dgl
- wheel-tests-cugraph-dgl
- wheel-build-cugraph-pyg
- wheel-tests-cugraph-pyg
- devcontainer
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
if: always()
Expand Down Expand Up @@ -74,6 +81,14 @@ jobs:
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp
with:
build_type: pull-request
# conda-cpp-checks:
# needs: conda-cpp-build
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/[email protected]
# with:
# build_type: pull-request
# enable_check_symbols: true
# symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel)
conda-python-build:
needs: conda-cpp-build
secrets: inherit
Expand All @@ -87,6 +102,17 @@ jobs:
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
with:
build_type: pull-request
conda-notebook-tests:
needs: [conda-python-build, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks
with:
build_type: pull-request
node_type: "gpu-v100-latest-1"
arch: "amd64"
container_image: "rapidsai/ci-conda:cuda11.8.0-ubuntu22.04-py3.10"
run_script: "ci/test_notebooks.sh"
wheel-build-pylibwholegraph:
needs: checks
secrets: inherit
Expand All @@ -104,3 +130,46 @@ jobs:
build_type: pull-request
script: ci/test_wheel_pylibwholegraph.sh
matrix_filter: map(select(.ARCH == "amd64"))
wheel-build-cugraph-dgl:
needs: wheel-tests-pylibwholegraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
script: ci/build_wheel_cugraph-dgl.sh
wheel-tests-cugraph-dgl:
needs: [wheel-build-cugraph-dgl, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
with:
build_type: pull-request
script: ci/test_wheel_cugraph-dgl.sh
matrix_filter: map(select(.ARCH == "amd64"))
wheel-build-cugraph-pyg:
needs: wheel-tests-pylibwholegraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
script: ci/build_wheel_cugraph-pyg.sh
wheel-tests-cugraph-pyg:
needs: [wheel-build-cugraph-pyg, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
with:
build_type: pull-request
script: ci/test_wheel_cugraph-pyg.sh
matrix_filter: map(select(.ARCH == "amd64"))
devcontainer:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
arch: '["amd64"]'
cuda: '["12.5"]'
node_type: cpu32
build_command: |
sccache -z;
build-all --verbose -j$(nproc --ignore=1);
sccache -s;
72 changes: 72 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: test

on:
workflow_dispatch:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string

jobs:
conda-cpp-checks:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
enable_check_symbols: true
symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel)
conda-cpp-tests:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
conda-python-tests:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
wheel-tests-pylibwholegraph:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_pylibwholegraph.sh
matrix_filter: map(select(.ARCH == "amd64"))
wheel-tests-cugraph-dgl:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_cugraph-dgl.sh
matrix_filter: map(select(.ARCH == "amd64"))
wheel-tests-cugraph-pyg:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_cugraph-pyg.sh
matrix_filter: map(select(.ARCH == "amd64"))
39 changes: 30 additions & 9 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ VALIDARGS="
pylibwholegraph
libwholegraph
tests
benchmarks
all
-v
-g
-n
--pydevelop
--allgpuarch
--compile-cmd
--clean
-h
--help
Expand All @@ -45,19 +47,22 @@ HELP="$0 [<target> ...] [<flag> ...]
clean - remove all existing build artifacts and configuration (start over)
uninstall - uninstall libcugraph and cugraph from a prior build/install (see also -n)
cugraph-pyg - build the cugraph-pyg Python package
cugraph-dgl - build the cugraph-dgl extensions for DGL
cugraph-dgl - build the cugraph-dgl Python package
pylibwholegraph - build the pylibwholegraph Python package
libwholegraph - build the libwholegraph library
tests - build the C++ tests
benchmarks - build benchmarks.
all - build everything
and <flag> is:
-v - verbose build mode
-g - build for debug
-n - do not install after a successful build (does not affect Python packages)
--pydevelop - install the Python packages in editable mode
--allgpuarch - build for all supported GPU architectures
--clean - clean an individual target (note: to do a complete rebuild, use the clean target described above)
-h - print this text
-v - verbose build mode
-g - build for debug
-n - do not install after a successful build (does not affect Python packages)
--pydevelop - install the Python packages in editable mode
--allgpuarch - build for all supported GPU architectures
--enable-nvshmem - build with nvshmem support (beta).
--compile-cmd - only output compile commands (invoke CMake without build)
--clean - clean an individual target (note: to do a complete rebuild, use the clean target described above)
-h - print this text

default action (no args) is to build and install 'libwholegraph' then 'pylibwholegraph' then 'cugraph-pyg' then 'cugraph-dgl'

Expand Down Expand Up @@ -139,6 +144,21 @@ fi
if hasArg --pydevelop; then
PYTHON_ARGS_FOR_INSTALL="${PYTHON_ARGS_FOR_INSTALL} -e"
fi
if hasArg --enable-nvshmem; then
BUILD_WITH_NVSHMEM=ON
else
BUILD_WITH_NVSHMEM=OFF
fi
if hasArg tests; then
BUILD_TESTS=ON
else
BUILD_TESTS=OFF
fi
if hasArg benchmarks; then
BUILD_BENCHMARKS=ON
else
BUILD_BENCHMARKS=OFF
fi

if hasArg tests; then
BUILD_TESTS=ON
Expand Down Expand Up @@ -189,6 +209,7 @@ if hasArg clean; then
fi

################################################################################

# Build and install the libwholegraph library
if hasArg libwholegraph || buildDefault || hasArg all ; then

Expand Down Expand Up @@ -250,7 +271,7 @@ if hasArg cugraph-pyg || buildDefault || hasArg all; then
fi
fi

# Install the cugraph-dgl extensions for DGL
# Build and install the cugraph-dgl Python package
if hasArg cugraph-dgl || buildDefault ||hasArg all; then
if hasArg --clean; then
cleanPythonDir ${REPODIR}/python/cugraph-dgl
Expand Down
12 changes: 12 additions & 0 deletions ci/build_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,16 @@ RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry mambabuild \
--channel "${CPP_CHANNEL}" \
conda/recipes/pylibwholegraph

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

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

rapids-upload-conda-to-s3 python
2 changes: 1 addition & 1 deletion ci/run_cugraph_dgl_pytests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
set -euo pipefail

# Support invoking run_cugraph_dgl_pytests.sh outside the script directory
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../python/cugraph-dgl/tests
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../python/cugraph-dgl/cugraph_dgl

pytest --cache-clear --ignore=mg "$@" .
Loading
Loading