Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
89 changes: 44 additions & 45 deletions .github/workflows/main-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
build-link:
runs-on: ubuntu-24.04-arm
container:
image: python:3.12
image: python:3.13

steps:
- name: Checkout repository
Expand All @@ -21,21 +21,16 @@ jobs:
- name: Install dependencies
run: |
apt-get update && apt-get install -y patchelf curl unzip zip gcc
pip install uv

# Get CUDA runtimes via pip
- name: Set up python virtual environments with NVIDIA dependencies for CUDA 12 and CUDA 13 (respectively)
run: |
mkdir -p venvs
python -m venv venvs/cu12
bash -c "source venvs/cu12/bin/activate && \
pip install --upgrade pip -qq && \
pip install --timeout=150 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.6.*' -qq &&
deactivate"
python -m venv venvs/cu13
bash -c "source venvs/cu13/bin/activate && \
pip install --upgrade pip -qq && \
pip install --timeout=150 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.6.*' -qq &&
deactivate"
uv venv venvs/cu12
uv pip install --python venvs/cu12 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.8.*' -qq
uv venv venvs/cu13
uv pip install --python venvs/cu13 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.8.*' -qq

# Get GAMS (ARM64 version)
- name: Download and extract latest GAMS distribution
Expand All @@ -49,17 +44,17 @@ 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.12/site-packages/libcuopt"
export JITLINK="venvs/cu12/lib/python3.12/site-packages/nvidia/nvjitlink/lib"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt"
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
patchelf --set-rpath \$ORIGIN gmscuopt-cu12.out
export CUOPT="venvs/cu13/lib/python3.12/site-packages/libcuopt"
export JITLINK="venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib"
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt"
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 \
Expand All @@ -74,41 +69,45 @@ jobs:
mkdir release-cu12
cp gmscuopt-cu12.out release-cu12/gmscuopt.out
cp assets/* release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt/lib64/libcuopt.so release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libgomp-*.so.1.0.0 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libtbb-*.so.2 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libtbbmalloc-*.so.2 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/rapids_logger/lib64/librapids_logger.so release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/librmm/lib64/librmm.so 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/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.12/site-packages/nvidia/cu12/lib/libcudss.so.0 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cu12/lib/libcudss_mtlayer_gomp.so.0 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cusolver/lib/libcusolver.so.11 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cublas/lib/libcublas.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cublas/lib/libcublasLt.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/curand/lib/libcurand.so.10 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cusparse/lib/libcusparse.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libcares-*.so.2.2.0 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/
mkdir release-cu13
cp gmscuopt-cu13.out release-cu13/gmscuopt.out
cp assets/* release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt/lib64/libcuopt.so release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libgomp-*.so.1.0.0 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libtbb-*.so.2 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libtbbmalloc-*.so.2 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/rapids_logger/lib64/librapids_logger.so release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/librmm/lib64/librmm.so 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/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.12/site-packages/nvidia/cu13/lib/libcudss.so.0 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcudss_mtlayer_gomp.so.0 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libnvJitLink.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcublas.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcublasLt.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcurand.so.10 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcusolver.so.12 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcusparse.so.12 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libcares-*.so.2.2.0 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/

# Upload artifacts
- name: Upload CUDA 12 link artifact to GitHub Actions (always)
Expand Down
89 changes: 44 additions & 45 deletions .github/workflows/main-x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
build-link:
runs-on: ubuntu-latest
container:
image: python:3.12
image: python:3.13

steps:
- name: Checkout repository
Expand All @@ -21,21 +21,16 @@ jobs:
- name: Install dependencies
run: |
apt-get update && apt-get install -y patchelf curl unzip zip gcc
pip install uv

# Get CUDA runtimes via pip
- name: Set up python virtual environments with NVIDIA dependencies for CUDA 12 and CUDA 13 (respectively)
run: |
mkdir -p venvs
python -m venv venvs/cu12
bash -c "source venvs/cu12/bin/activate && \
pip install --upgrade pip -qq && \
pip install --timeout=150 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.6.*' -qq &&
deactivate"
python -m venv venvs/cu13
bash -c "source venvs/cu13/bin/activate && \
pip install --upgrade pip -qq && \
pip install --timeout=150 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.6.*' -qq &&
deactivate"
uv venv venvs/cu12
uv pip install --python venvs/cu12 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.8.*' -qq
uv venv venvs/cu13
uv pip install --python venvs/cu13 --extra-index-url=https://pypi.nvidia.com 'cuopt-cu13==26.8.*' -qq

# Get GAMS
- name: Download and extract latest GAMS distribution
Expand All @@ -49,17 +44,17 @@ 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.12/site-packages/libcuopt"
export JITLINK="venvs/cu12/lib/python3.12/site-packages/nvidia/nvjitlink/lib"
export CUOPT="venvs/cu12/lib/python3.13/site-packages/libcuopt"
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
patchelf --set-rpath \$ORIGIN gmscuopt-cu12.out
export CUOPT="venvs/cu13/lib/python3.12/site-packages/libcuopt"
export JITLINK="venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib"
export CUOPT="venvs/cu13/lib/python3.13/site-packages/libcuopt"
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 \
Expand All @@ -74,41 +69,45 @@ jobs:
mkdir release-cu12
cp gmscuopt-cu12.out release-cu12/gmscuopt.out
cp assets/* release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt/lib64/libcuopt.so release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libgomp-*.so.1.0.0 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libtbb-*.so.2 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libtbbmalloc-*.so.2 release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/rapids_logger/lib64/librapids_logger.so release-cu12/
cp venvs/cu12/lib/python3.12/site-packages/librmm/lib64/librmm.so 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/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.12/site-packages/nvidia/cu12/lib/libcudss.so.0 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cu12/lib/libcudss_mtlayer_gomp.so.0 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cusolver/lib/libcusolver.so.11 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cublas/lib/libcublas.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cublas/lib/libcublasLt.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/curand/lib/libcurand.so.10 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/nvidia/cusparse/lib/libcusparse.so.12 runtime-cu12/
cp venvs/cu12/lib/python3.12/site-packages/libcuopt_cu12.libs/libcares-*.so.2.2.0 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/
mkdir release-cu13
cp gmscuopt-cu13.out release-cu13/gmscuopt.out
cp assets/* release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt/lib64/libcuopt.so release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libgomp-*.so.1.0.0 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libtbb-*.so.2 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libtbbmalloc-*.so.2 release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/rapids_logger/lib64/librapids_logger.so release-cu13/
cp venvs/cu13/lib/python3.12/site-packages/librmm/lib64/librmm.so 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/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.12/site-packages/nvidia/cu13/lib/libcudss.so.0 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcudss_mtlayer_gomp.so.0 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libnvJitLink.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcublas.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcublasLt.so.13 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcurand.so.10 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcusolver.so.12 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/nvidia/cu13/lib/libcusparse.so.12 runtime-cu13/
cp venvs/cu13/lib/python3.12/site-packages/libcuopt_cu13.libs/libcares-*.so.2.2.0 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/

# Upload artifacts
- name: Upload CUDA 12 link artifact to GitHub Actions (always)
Expand Down
Loading