Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5b13f78
Build against latest cuOpt nightly wheels from RAPIDS nightly index
0x17 Oct 2, 2026
9f2afcb
Support multi-GPU PDLP via num_gpus -1/>1 and add multigpu_pdlp_parti…
0x17 Oct 2, 2026
56556f9
Adapt link and bundles to split cuOpt nightly libraries (libcuopt_mat…
0x17 Oct 2, 2026
b7b2871
Drop PDLP reduced-cost workaround, fixed upstream in cuOpt 26.10 (NVI…
0x17 Oct 2, 2026
ba7bdee
Document multi-GPU PDLP usage in README
0x17 Oct 2, 2026
e5bfb6d
Remove options dropped in cuOpt 26.10 from optcuopt.def
0x17 Oct 2, 2026
990bd1f
Make multi-GPU PDLP work: create ranged problem and skip initial solu…
0x17 Oct 2, 2026
235e7cc
Document multi-GPU PDLP limitations (no starting values, different co…
0x17 Oct 2, 2026
c7a7712
Add primal simplex method and SeDuMi barrier initial point, fix chang…
0x17 Oct 2, 2026
9a14f86
Add options introduced in cuOpt 26.10 to optcuopt.def
0x17 Oct 2, 2026
5db50e0
Report iterations and nodes to GAMS via cuOpt solution attributes
0x17 Oct 2, 2026
1654974
Pass GAMS nodlim to cuOpt node_limit
0x17 Oct 2, 2026
5cdd066
Update README: system library requirements, manual gamsconfig setup, …
0x17 Oct 2, 2026
cadddb7
Use a harder market split instance in statuses.gms so the time-limit …
0x17 Oct 2, 2026
11e690c
Allow model-specific time limits in the gamslib baseline, give poutil…
0x17 Oct 2, 2026
21c682b
Add mip_hyper_presolve_indicator_strengthening option (cuOpt #1983) […
0x17 Oct 2, 2026
8edd916
build: adapt cuOpt link packaging to modular 26.10 wheels
0x17 Oct 4, 2026
4855ada
Revert "build: adapt cuOpt link packaging to modular 26.10 wheels"
0x17 Oct 4, 2026
ba44887
ci: pin libcuopt to last pre-modular nightly 26.10.0a223
0x17 Oct 4, 2026
d73a4f5
ci: move libcuopt pin to 26.10.0a224, a223 is gone from the nightly i…
0x17 Oct 6, 2026
5be81bd
Merge main (#21, #22) into multigpu-pdlp-nightly
0x17 Oct 6, 2026
d917401
Build against latest cuOpt nightly wheels from RAPIDS nightly index (…
0x17 Oct 7, 2026
a53dd90
Add postsolve_info option (cuOpt #1639)
0x17 Oct 8, 2026
4173634
Drop cuOptCreateRangedProblem workaround, multi-GPU PDLP honors row t…
0x17 Oct 9, 2026
ea40af3
Add mip_dual_degenerate_feasibility_pump, mip_primal_degenerate_pivot…
0x17 Oct 11, 2026
1c1c62d
Sync cuOpt options with NVIDIA/cuopt main (8eb20bd) (#25)
0x17 Oct 14, 2026
dcacd47
Build against released cuOpt 26.10 wheels from PyPI instead of nightlies
0x17 Oct 15, 2026
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
46 changes: 26 additions & 20 deletions .github/workflows/main-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ jobs:
run: |
mkdir -p venvs
uv venv venvs/cu12
uv pip install --python venvs/cu12 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.8.*' -qq
uv pip install --python venvs/cu12 'libcuopt-mathopt-cu12==26.10.*' 'libcuopt-client==26.10.*' -qq
uv venv venvs/cu13
uv pip install --python venvs/cu13 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.8.*' -qq
uv pip install --python venvs/cu13 'libcuopt-mathopt-cu13==26.10.*' 'libcuopt-client==26.10.*' -qq

# Get GAMS (ARM64 version)
- name: Download and extract latest GAMS distribution
Expand All @@ -44,23 +44,25 @@ jobs:
- name: Compile GAMS/cuOpt-link binary "gmscuopt.out" for CUDA 12 and then for CUDA 13
run: |
export GAMSCAPI="gamsdist/apifiles/C/api"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt"
export JITLINK="venvs/cu12/lib/python3.13/site-packages/nvidia/nvjitlink/lib"
export CUOPT_VERSION="`cat "$CUOPT/VERSION"`"
export CUOPT_HASH="`cat "$CUOPT/GIT_COMMIT"`"
gcc -Wall gmscuopt.c -o gmscuopt-cu12.out \
-DCUOPT_VERSION=\"$CUOPT_VERSION\" -DCUOPT_HASH=\"$CUOPT_HASH\" \
-I $GAMSCAPI $GAMSCAPI/gmomcc.c $GAMSCAPI/optcc.c $GAMSCAPI/gevmcc.c \
-I $CUOPT/include $JITLINK/libnvJitLink.so.12 -L $CUOPT/lib64 -lcuopt
-I $CUOPT/include -I venvs/cu12/lib/python3.13/site-packages/libcuopt_client/include $JITLINK/libnvJitLink.so.12 -L $CUOPT/lib64 -lcuopt_mathopt \
-L venvs/cu12/lib/python3.13/site-packages/libcuopt_client/lib64 -lcuopt_client
patchelf --set-rpath \$ORIGIN gmscuopt-cu12.out
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt"
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt"
export JITLINK="venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib"
export CUOPT_VERSION="`cat "$CUOPT/VERSION"`"
export CUOPT_HASH="`cat "$CUOPT/GIT_COMMIT"`"
gcc -Wall gmscuopt.c -o gmscuopt-cu13.out \
-DCUOPT_VERSION=\"$CUOPT_VERSION\" -DCUOPT_HASH=\"$CUOPT_HASH\" \
-I $GAMSCAPI $GAMSCAPI/gmomcc.c $GAMSCAPI/optcc.c $GAMSCAPI/gevmcc.c \
-I $CUOPT/include $JITLINK/libnvJitLink.so.13 -L $CUOPT/lib64 -lcuopt
-I $CUOPT/include -I venvs/cu13/lib/python3.13/site-packages/libcuopt_client/include $JITLINK/libnvJitLink.so.13 -L $CUOPT/lib64 -lcuopt_mathopt \
-L venvs/cu13/lib/python3.13/site-packages/libcuopt_client/lib64 -lcuopt_client
patchelf --set-rpath \$ORIGIN gmscuopt-cu13.out

# Collect dependencies for link and runtime convenience archive
Expand All @@ -69,45 +71,49 @@ jobs:
mkdir release-cu12
cp gmscuopt-cu12.out release-cu12/gmscuopt.out
cp assets/* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt/lib64/libcuopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libraft_cu12.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libtbb-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libtbbmalloc-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcuopt_mathopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client/lib64/libcuopt_client.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libtbb-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libtbbmalloc-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcudss_mtlayer_cuopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libcudart-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/rapids_logger/lib64/librapids_logger.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/librmm/lib64/librmm.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/nccl/lib/libnccl.so* release-cu12/
mkdir runtime-cu12
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cu12/lib/libcudss.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cu12/lib/libcudss_mtlayer_gomp.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cusolver/lib/libcusolver.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cublas/lib/libcublas.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cublas/lib/libcublasLt.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/curand/lib/libcurand.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cusparse/lib/libcusparse.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libcares-*.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client.libs/libcares-*.so* runtime-cu12/
mkdir release-cu13
cp gmscuopt-cu13.out release-cu13/gmscuopt.out
cp assets/* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt/lib64/libcuopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libraft_cu13.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libtbb-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libtbbmalloc-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcuopt_mathopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client/lib64/libcuopt_client.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libtbb-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libtbbmalloc-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcudss_mtlayer_cuopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libcudart-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/rapids_logger/lib64/librapids_logger.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/librmm/lib64/librmm.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/nccl/lib/libnccl.so* release-cu13/
mkdir runtime-cu13
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcudss.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcudss_mtlayer_gomp.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libnvJitLink.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcublas.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcublasLt.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcurand.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcusolver.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcusparse.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libcares-*.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client.libs/libcares-*.so* runtime-cu13/

# Upload artifacts
- name: Upload CUDA 12 link artifact to GitHub Actions (always)
Expand Down
46 changes: 26 additions & 20 deletions .github/workflows/main-x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ jobs:
run: |
mkdir -p venvs
uv venv venvs/cu12
uv pip install --python venvs/cu12 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.8.*' -qq
uv pip install --python venvs/cu12 'libcuopt-mathopt-cu12==26.10.*' 'libcuopt-client==26.10.*' -qq
uv venv venvs/cu13
uv pip install --python venvs/cu13 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.8.*' -qq
uv pip install --python venvs/cu13 'libcuopt-mathopt-cu13==26.10.*' 'libcuopt-client==26.10.*' -qq

# Get GAMS
- name: Download and extract latest GAMS distribution
Expand All @@ -44,23 +44,25 @@ jobs:
- name: Compile GAMS/cuOpt-link binary "gmscuopt.out" for CUDA 12 and then for CUDA 13
run: |
export GAMSCAPI="gamsdist/apifiles/C/api"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt"
export JITLINK="venvs/cu12/lib/python3.13/site-packages/nvidia/nvjitlink/lib"
export CUOPT_VERSION="`cat "$CUOPT/VERSION"`"
export CUOPT_HASH="`cat "$CUOPT/GIT_COMMIT"`"
gcc -Wall gmscuopt.c -o gmscuopt-cu12.out \
-DCUOPT_VERSION=\"$CUOPT_VERSION\" -DCUOPT_HASH=\"$CUOPT_HASH\" \
-I $GAMSCAPI $GAMSCAPI/gmomcc.c $GAMSCAPI/optcc.c $GAMSCAPI/gevmcc.c \
-I $CUOPT/include $JITLINK/libnvJitLink.so.12 -L $CUOPT/lib64 -lcuopt
-I $CUOPT/include -I venvs/cu12/lib/python3.13/site-packages/libcuopt_client/include $JITLINK/libnvJitLink.so.12 -L $CUOPT/lib64 -lcuopt_mathopt \
-L venvs/cu12/lib/python3.13/site-packages/libcuopt_client/lib64 -lcuopt_client
patchelf --set-rpath \$ORIGIN gmscuopt-cu12.out
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt"
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt"
export JITLINK="venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib"
export CUOPT_VERSION="`cat "$CUOPT/VERSION"`"
export CUOPT_HASH="`cat "$CUOPT/GIT_COMMIT"`"
gcc -Wall gmscuopt.c -o gmscuopt-cu13.out \
-DCUOPT_VERSION=\"$CUOPT_VERSION\" -DCUOPT_HASH=\"$CUOPT_HASH\" \
-I $GAMSCAPI $GAMSCAPI/gmomcc.c $GAMSCAPI/optcc.c $GAMSCAPI/gevmcc.c \
-I $CUOPT/include $JITLINK/libnvJitLink.so.13 -L $CUOPT/lib64 -lcuopt
-I $CUOPT/include -I venvs/cu13/lib/python3.13/site-packages/libcuopt_client/include $JITLINK/libnvJitLink.so.13 -L $CUOPT/lib64 -lcuopt_mathopt \
-L venvs/cu13/lib/python3.13/site-packages/libcuopt_client/lib64 -lcuopt_client
patchelf --set-rpath \$ORIGIN gmscuopt-cu13.out

# Collect dependencies for link and runtime convenience archive
Expand All @@ -69,45 +71,49 @@ jobs:
mkdir release-cu12
cp gmscuopt-cu12.out release-cu12/gmscuopt.out
cp assets/* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt/lib64/libcuopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libraft_cu12.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libtbb-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libtbbmalloc-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcuopt_mathopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client/lib64/libcuopt_client.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client.libs/libgomp-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libtbb-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libtbbmalloc-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcudss_mtlayer_cuopt.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_mathopt_cu12.libs/libcudart-*.so* release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/rapids_logger/lib64/librapids_logger.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/librmm/lib64/librmm.so release-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/nccl/lib/libnccl.so* release-cu12/
mkdir runtime-cu12
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cu12/lib/libcudss.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cu12/lib/libcudss_mtlayer_gomp.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cusolver/lib/libcusolver.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cublas/lib/libcublas.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cublas/lib/libcublasLt.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/curand/lib/libcurand.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/nvidia/cusparse/lib/libcusparse.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_cu12.libs/libcares-*.so* runtime-cu12/
cp venvs/cu12/lib/python3.13/site-packages/libcuopt_client.libs/libcares-*.so* runtime-cu12/
mkdir release-cu13
cp gmscuopt-cu13.out release-cu13/gmscuopt.out
cp assets/* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt/lib64/libcuopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libraft_cu13.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libtbb-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libtbbmalloc-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcuopt_mathopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client/lib64/libcuopt_client.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client.libs/libgomp-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libtbb-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libtbbmalloc-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt/lib64/libcudss_mtlayer_cuopt.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_mathopt_cu13.libs/libcudart-*.so* release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/rapids_logger/lib64/librapids_logger.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/librmm/lib64/librmm.so release-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/nccl/lib/libnccl.so* release-cu13/
mkdir runtime-cu13
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcudss.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcudss_mtlayer_gomp.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libnvJitLink.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcublas.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcublasLt.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcurand.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcusolver.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/nvidia/cu13/lib/libcusparse.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_cu13.libs/libcares-*.so* runtime-cu13/
cp venvs/cu13/lib/python3.13/site-packages/libcuopt_client.libs/libcares-*.so* runtime-cu13/

# Upload artifacts
- name: Upload CUDA 12 link artifact to GitHub Actions (always)
Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The link (`gmscuopt.c`) is built against the GAMS C API from a GAMS distribution

```bash
python -m venv .venv
.venv/bin/pip install --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.8.*'
.venv/bin/pip install 'libcuopt-mathopt-cu13==26.10.*' 'libcuopt-client==26.10.*'
GAMSDIST=/path/to/gams ./build-link.sh
```

Expand All @@ -32,6 +32,8 @@ New or changed cuOpt options go into `assets/optcuopt.def` and have to be passed

The GPU tests use the GAMS system found in your `PATH`, with the link installed.

Without a local GPU, open `tests/colab-gpu-test.ipynb` in Google Colab with a GPU runtime: it builds the link from a branch the same way as CI, installs it into a fresh GAMS system and runs a `trnsport` smoke test and `tests/test-gamslib-cuopt.py`.

## Pull requests

- Keep each pull request focused on one change and describe how you tested it.
Expand Down
Loading