Skip to content

Commit b60e42f

Browse files
bdicetrxcllnt
andauthored
Add cuOpt to unified devcontainers (#637)
This adds cuOpt to the unified devcontainers. It releases on the same cadence as RAPIDS and has RAPIDS dependency infrastructure, so it's useful to be able to do test builds of cuOpt in a RAPIDS environments. Depends on: - NVIDIA/cuopt#660 - NVIDIA/cuopt#722 - NVIDIA/cuopt#723 - NVIDIA/cuopt#729 --------- Co-authored-by: Paul Taylor <178183+trxcllnt@users.noreply.github.com> Co-authored-by: ptaylor <paul.e.taylor@me.com>
1 parent 832b149 commit b60e42f

17 files changed

Lines changed: 161 additions & 100 deletions

File tree

.devcontainer/cuda12.9-conda/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"./features/src/utils",
4848
"./features/src/rapids-build-utils"
4949
],
50-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda12.9-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
50+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda12.9-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
5151
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
5252
"workspaceFolder": "/home/coder",
5353
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -66,6 +66,7 @@
6666
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
6767
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
6868
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
69+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
6970
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
7071
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
7172
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/cuda12.9-pip/devcontainer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"cuDNNVersion": "9",
2323
"installcuBLAS": true,
2424
"installcuDNN": true,
25+
"installcuDSS": true,
2526
"installcuSOLVER": true,
2627
"installcuRAND": true,
2728
"installcuSPARSE": true,
@@ -35,7 +36,7 @@
3536
"./features/src/utils",
3637
"./features/src/rapids-build-utils"
3738
],
38-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
39+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda12.9-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
3940
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
4041
"workspaceFolder": "/home/coder",
4142
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -54,6 +55,7 @@
5455
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
5556
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
5657
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
58+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
5759
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
5860
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
5961
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/cuda13.0-conda/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"./features/src/utils",
4848
"./features/src/rapids-build-utils"
4949
],
50-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.0-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
50+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.0-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
5151
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
5252
"workspaceFolder": "/home/coder",
5353
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -66,6 +66,7 @@
6666
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
6767
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
6868
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
69+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
6970
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
7071
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
7172
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/cuda13.0-pip/devcontainer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"cuDNNVersion": "9",
2323
"installcuBLAS": true,
2424
"installcuDNN": true,
25+
"installcuDSS": true,
2526
"installcuSOLVER": true,
2627
"installcuRAND": true,
2728
"installcuSPARSE": true,
@@ -35,7 +36,7 @@
3536
"./features/src/utils",
3637
"./features/src/rapids-build-utils"
3738
],
38-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
39+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
3940
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
4041
"workspaceFolder": "/home/coder",
4142
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -54,6 +55,7 @@
5455
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
5556
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
5657
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
58+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
5759
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
5860
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
5961
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/cuda13.1-conda/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"./features/src/utils",
4848
"./features/src/rapids-build-utils"
4949
],
50-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.1-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
50+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.1-envs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
5151
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
5252
"workspaceFolder": "/home/coder",
5353
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -66,6 +66,7 @@
6666
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
6767
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
6868
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
69+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
6970
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
7071
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
7172
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/cuda13.1-pip/devcontainer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"cuDNNVersion": "9",
2323
"installcuBLAS": true,
2424
"installcuDNN": true,
25+
"installcuDSS": true,
2526
"installcuSOLVER": true,
2627
"installcuRAND": true,
2728
"installcuSPARSE": true,
@@ -35,7 +36,7 @@
3536
"./features/src/utils",
3637
"./features/src/rapids-build-utils"
3738
],
38-
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph}"],
39+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.1-venvs,log/devcontainer-utils} ${localWorkspaceFolder}/../{rmm,dask-cuda,kvikio,ucxx,cudf,rapidsmpf,raft,cuvs,cuml,cugraph,cugraph-gnn,nx-cugraph,cuopt}"],
3940
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; fi"],
4041
"workspaceFolder": "/home/coder",
4142
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent",
@@ -54,6 +55,7 @@
5455
"source=${localWorkspaceFolder}/../cugraph,target=/home/coder/cugraph,type=bind,consistency=consistent",
5556
"source=${localWorkspaceFolder}/../cugraph-gnn,target=/home/coder/cugraph-gnn,type=bind,consistency=consistent",
5657
"source=${localWorkspaceFolder}/../nx-cugraph,target=/home/coder/nx-cugraph,type=bind,consistency=consistent",
58+
"source=${localWorkspaceFolder}/../cuopt,target=/home/coder/cuopt,type=bind,consistency=consistent",
5759
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
5860
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
5961
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",

.devcontainer/rapids.Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ RUN apt update -y \
2020
liblapack-dev \
2121
# rapidsmpf dependencies
2222
libnuma-dev \
23+
# cuOpt dependencies
24+
libtbb-dev \
25+
libboost-dev \
26+
libboost-iostreams-dev \
27+
libboost-serialization-dev \
28+
libboost-program-options-dev \
2329
&& rm -rf /tmp/* /var/tmp/* /var/cache/apt/* /var/lib/apt/lists/*;
2430

2531
ENV DEFAULT_VIRTUAL_ENV=rapids

.github/workflows/build-all-rapids-repos.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
matrix:
4141
include:
4242
- libs: "rmm ucxx kvikio dask-cuda cudf cudf_kafka rapidsmpf"
43-
- libs: "rmm ucxx dask-cuda raft cuvs cuml"
43+
- libs: "rmm ucxx dask-cuda raft cuvs cuml cuopt"
4444
- libs: "rmm ucxx dask-cuda raft cugraph cugraph-gnn nx-cugraph"
4545

4646
with:
@@ -105,32 +105,32 @@ jobs:
105105
rapids-post-start-command;
106106
107107
# Configure all the C++ libs
108-
run_command "Configure C++ libraries" bash -c "\
109-
time configure-all \
110-
-j${PARALLEL_LEVEL} \
111-
-GNinja \
112-
-Wno-dev \
113-
-DBUILD_TESTS=ON \
114-
-DBUILD_BENCHMARKS=ON \
115-
-DBUILD_PRIMS_BENCH=ON \
116-
-DBUILD_SHARED_LIBS=ON \
117-
-DRAFT_COMPILE_LIBRARY=ON \
118-
-DBUILD_CUGRAPH_MG_TESTS=ON 2>&1 \
108+
run_command "Configure C++ libraries" bash -ceuo pipefail "\
109+
time configure-all \
110+
-j${PARALLEL_LEVEL} \
111+
-GNinja \
112+
-Wno-dev \
113+
-DBUILD_TESTS=ON \
114+
-DBUILD_BENCHMARKS=ON \
115+
-DBUILD_PRIMS_BENCH=ON \
116+
-DBUILD_SHARED_LIBS=ON \
117+
-DRAFT_COMPILE_LIBRARY=ON \
118+
-DBUILD_CUGRAPH_MG_TESTS=ON 2>&1 \
119119
| tee -a telemetry-artifacts/build.log";
120120
121121
# Build all the C++ libs
122-
run_command "Build C++ libraries" bash -c "\
122+
run_command "Build C++ libraries" bash -ceuo pipefail "\
123123
time build-all-cpp -j${PARALLEL_LEVEL} 2>&1 | tee -a telemetry-artifacts/build.log";
124124
125125
# Build all the Python libs
126-
run_command "Build Python libraries" bash -c "\
126+
run_command "Build Python libraries" bash -ceuo pipefail "\
127127
time build-all-python -j${PARALLEL_LEVEL} 2>&1 | tee -a telemetry-artifacts/build.log";
128128
129129
# Print cache and dist stats
130-
run_command "sccache stats" bash -c "\
130+
run_command "sccache stats" bash -ceuo pipefail "\
131131
sccache --show-adv-stats | tee -a telemetry-artifacts/sccache-stats.txt";
132132
133133
# Print build times
134-
run_command "Build times" bash -c "\
134+
run_command "Build times" bash -ceuo pipefail "\
135135
find /var/log/devcontainer-utils/ -type f -name 'build-*-time.log' -print0 \
136136
| xargs -0 -n1 grep -H real | sed 's/real\t/ /g' || :" # Nonfatal if not found

.github/workflows/test-rapids-build-times.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ jobs:
127127
}
128128
129129
# Clone all the repos
130-
time run_command "Clone RAPIDS repositories" bash -c "\
130+
time run_command "Clone RAPIDS repositories" bash -ceuo pipefail "\
131131
RAPIDS_TO_UCXX_BRANCH=\"$(convert_ucx_branch ucxx '${{ inputs.branch }}')\";
132132
CLONE_ARGS=(-j$(nproc) -q -v --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env);
133133
clone-all -b \"${{ inputs.branch }}\" \${CLONE_ARGS[*]} >/dev/null 2>&1;
@@ -136,13 +136,13 @@ jobs:
136136
137137
sleep 1
138138
139-
time run_command "Create RAPIDS python environment" bash -c "\
139+
time run_command "Create RAPIDS python environment" bash -ceuo pipefail "\
140140
rapids-post-start-command >/dev/null" 2>&1
141141
142142
sleep 1
143143
144144
# Configure all the C++ libs
145-
time run_command "Configure C++ libraries" bash -c "\
145+
time run_command "Configure C++ libraries" bash -ceuo pipefail "\
146146
configure-all \
147147
-j${PARALLEL_LEVEL} \
148148
-GNinja \
@@ -162,11 +162,11 @@ jobs:
162162
"SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=1" ; do
163163
164164
# Restart sccache
165-
run_command "Start sccache (${ENVVAR})" bash -c "\
165+
run_command "Start sccache (${ENVVAR})" bash -ceuo pipefail "\
166166
${ENVVAR} devcontainer-utils-start-sccache --kill-all >/dev/null 2>&1"
167167
168168
# Build all the C++ libs
169-
time run_command "Build C++ libraries (${ENVVAR})" bash -c "\
169+
time run_command "Build C++ libraries (${ENVVAR})" bash -ceuo pipefail "\
170170
${ENVVAR} build-all-cpp -j${PARALLEL_LEVEL} >/dev/null" 2>&1
171171
172172
sleep 1
@@ -176,12 +176,12 @@ jobs:
176176
sccache --show-adv-stats
177177
178178
# Print build times
179-
run_command "Build times (${ENVVAR})" bash -c "\
179+
run_command "Build times (${ENVVAR})" bash -ceuo pipefail "\
180180
find /var/log/devcontainer-utils/ -type f -name 'build-*-time.log' -print0 \
181181
| xargs -0 -n1 grep -H real | sed 's/real\t/ /g' || : # Nonfatal if not found"
182182
183183
# Clean
184-
run_command "Clean (${ENVVAR})" bash -c "\
184+
run_command "Clean (${ENVVAR})" bash -ceuo pipefail "\
185185
find /var/log/devcontainer-utils/ -type f -name 'build-*-time.log' -delete >/dev/null 2>&1 || : # Nonfatal if not found
186186
find ~/ -maxdepth 4 -type l -path '*/cpp/build/latest' -print0 | xargs -P$(nproc) -0 -n1 ninja clean -C >/dev/null 2>&1 || : # Nonfatal if not found"
187187
done

features/src/cuda/devcontainer-feature.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "CUDA Toolkit",
33
"id": "cuda",
4-
"version": "26.4.0",
4+
"version": "26.4.1",
55
"description": "A feature to install the NVIDIA CUDA Toolkit",
66
"options": {
77
"version": {
@@ -64,6 +64,11 @@
6464
"default": false,
6565
"description": "Install CUDA Deep Neural Network Library (cuDNN)"
6666
},
67+
"installcuDSS": {
68+
"type": "boolean",
69+
"default": false,
70+
"description": "Install CUDA Direct Solver of Sparse Linear Systems (cuDSS)"
71+
},
6772
"installcuTensor": {
6873
"type": "boolean",
6974
"default": false,

0 commit comments

Comments
 (0)