Skip to content

Merge pull request #757 from hongyx11/dev #440

Merge pull request #757 from hongyx11/dev

Merge pull request #757 from hongyx11/dev #440

Workflow file for this run

name: PyLops Testing with CuPy
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- main
- dev
jobs:
build:
runs-on:
- self-hosted
- exouser
steps:
- name: Check out source repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv with Python 3.11
uses: astral-sh/setup-uv@v6
with:
python-version: 3.11
- name: Install dependencies and pylops
run: |
uv sync --extra advanced \
--extra stat --extra gpu-cu12 \
--group dev
uv pip install \
--default-index https://download.pytorch.org/whl/cu128 \
torch==2.11.0+cu128
uv pip install \
nvidia-cuda-nvcc-cu12==12.2.128 \
nvidia-cuda-nvrtc-cu12==12.8.93 \
nvidia-cuda-runtime-cu12==12.8.90
echo "done!"
- name: Configure CUDA NVVM from uv wheels
run: |
CUDA_HOME="$PWD/.venv/lib/python3.11/site-packages/nvidia/cuda_nvcc"
CUDA_RUNTIME_ROOT="$PWD/.venv/lib/python3.11/site-packages/nvidia/cuda_runtime"
CUDA_NVRTC_ROOT="$PWD/.venv/lib/python3.11/site-packages/nvidia/cuda_nvrtc"
if [ ! -f "$CUDA_HOME/nvvm/lib64/libnvvm.so" ]; then
echo "libnvvm.so not found in $CUDA_HOME/nvvm/lib64"
exit 1
fi
if [ ! -f "$CUDA_RUNTIME_ROOT/lib/libcudart.so.12" ]; then
echo "libcudart.so.12 not found in $CUDA_RUNTIME_ROOT/lib"
exit 1
fi
if [ ! -f "$CUDA_NVRTC_ROOT/lib/libnvrtc.so.12" ]; then
echo "libnvrtc.so.12 not found in $CUDA_NVRTC_ROOT/lib"
exit 1
fi
mkdir -p "$CUDA_HOME/lib64"
ln -sf "$CUDA_HOME/nvvm/lib64/libnvvm.so" "$CUDA_HOME/nvvm/lib64/libnvvm.so.4"
ln -sf "$CUDA_HOME/nvvm/lib64/libnvvm.so" "$CUDA_HOME/lib64/libnvvm.so"
ln -sf "$CUDA_RUNTIME_ROOT/lib/libcudart.so.12" "$CUDA_HOME/lib64/libcudart.so.12"
ln -sf "$CUDA_RUNTIME_ROOT/lib/libcudart.so.12" "$CUDA_HOME/lib64/libcudart.so"
ln -sf "$CUDA_NVRTC_ROOT/lib/libnvrtc.so.12" "$CUDA_HOME/lib64/libnvrtc.so.12"
ln -sf "$CUDA_HOME/lib64/libnvrtc.so.12" "$CUDA_HOME/lib64/libnvrtc.so"
echo "CUDA_HOME=$CUDA_HOME" >> "$GITHUB_ENV"
echo "CUDA_NVVM_LIB=$CUDA_HOME/nvvm/lib64" >> "$GITHUB_ENV"
echo "done!"
- name: Test with pytest
run: |
export CUDA_HOME="${CUDA_HOME:-$PWD/.venv/lib/python3.11/site-packages/nvidia/cuda_nvcc}"
export CUPY_PYLOPS=1
export TEST_CUPY_PYLOPS=1
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$CUDA_NVVM_LIB:$LD_LIBRARY_PATH"
export NUMBA_CUDA_NVVM="$CUDA_NVVM_LIB/libnvvm.so"
uv run --no-sync pytest --color=yes pytests/
echo "done!"