Merge pull request #757 from hongyx11/dev #440
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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!" |