Skip to content

Commit

Permalink
adding cuda test
Browse files Browse the repository at this point in the history
  • Loading branch information
ori-kron-wis committed Dec 9, 2024
1 parent 2d29c9a commit 81d3170
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 3 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@ name: Check Build

on:
push:
branches: [main]
branches: [main, "[0-9]+.[0-9]+.x"]
pull_request:
branches: [main]
branches: [main, "[0-9]+.[0-9]+.x"]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
package:
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/test_linux_cuda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: PopV (cuda)

on:
push:
branches: [main, "[0-9]+.[0-9]+.x"] #this is new
pull_request:
branches: [main, "[0-9]+.[0-9]+.x"]
types: [labeled, synchronize, opened]
schedule:
- cron: "0 10 * * *" # runs at 10:00 UTC (03:00 PST) every day
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
# if PR has label "cuda tests" or "all tests" or if scheduled or manually triggered
if: >-
(
contains(github.event.pull_request.labels.*.name, 'cuda tests') ||
contains(github.event.pull_request.labels.*.name, 'all tests') ||
contains(github.event_name, 'schedule') ||
contains(github.event_name, 'workflow_dispatch')
)
runs-on: [self-hosted, Linux, X64, CUDA]

defaults:
run:
shell: bash -e {0} # -e to fail on error

container:
image: ghcr.io/yoseflab/popv:py3.10-cu12-base
options: --user root --gpus all --pull always

name: integration

env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python }}

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
cache: "pip"
cache-dependency-path: "**/pyproject.toml"

- name: Install dependencies
run: |
python -m pip install --upgrade pip wheel uv
python -m uv pip install --system "PopV[tests] @ ."
python -m pip install jax[cuda]
python -m pip install nvidia-nccl-cu12
- name: Run pytest
env:
MPLBACKEND: agg
PLATFORM: ${{ matrix.os }}
DISPLAY: :42
COLUMNS: 120
run: |
coverage run -m pytest -v --color=yes --accelerator cuda --devices auto
coverage report
- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
6 changes: 5 additions & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,8 @@ python:
- method: pip
path: .
extra_requirements:
- doc
- docsbuild
submodules:
include:
- "docs/notebooks"
recursive: true
28 changes: 28 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import shutil
import pytest

def pytest_addoption(parser):
"""Docstring for pytest_addoption."""
parser.addoption(
"--accelerator",
action="store",
default="cpu",
help="Option to specify which accelerator to use for tests.",
)
parser.addoption(
"--devices",
action="store",
default="auto",
help="Option to specify which devices to use for tests.",
)

@pytest.fixture(scope="session")
def accelerator(request):
"""Docstring for accelerator."""
return request.config.getoption("--accelerator")


@pytest.fixture(scope="session")
def devices(request):
"""Docstring for devices."""
return request.config.getoption("--devices")

0 comments on commit 81d3170

Please sign in to comment.