74 lines
2.4 KiB
YAML
74 lines
2.4 KiB
YAML
name: nv-sd
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
paths:
|
|
- "deepspeed/ops/transformer/inference/diffusers_**"
|
|
- "tests/unit/inference/test_stable_diffusion.py"
|
|
- "deepspeed/model_implementations/diffusers/unet.py"
|
|
- "deepspeed/model_implementations/diffusers/vae.py"
|
|
- "deepspeed/module_inject/containers/vae.py"
|
|
- "deepspeed/module_inject/containers/unet.py"
|
|
- ".github/workflows/nv-sd.yml"
|
|
- "requirements/requirements-sd.txt"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
|
|
jobs:
|
|
sd-tests:
|
|
name: nv-sd / stable diffusion tests
|
|
runs-on: [self-hosted, nvidia, a6000]
|
|
container:
|
|
image: nvcr.io/nvidia/pytorch:24.03-py3
|
|
ports:
|
|
- 80
|
|
options: --gpus all --shm-size "8G"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Check container state
|
|
run: |
|
|
ldd --version
|
|
nvcc --version
|
|
nvidia-smi
|
|
python -c "import torch; print('torch:', torch.__version__, torch)"
|
|
python -c "import torch; print('CUDA available:', torch.cuda.is_available())"
|
|
- name: Install transformers
|
|
run: |
|
|
git clone https://github.com/huggingface/transformers
|
|
cd transformers
|
|
git rev-parse --short HEAD
|
|
python -m pip install .
|
|
- name: Install deepspeed
|
|
run: |
|
|
pip install image-similarity-measures
|
|
python -m pip install opencv-python==4.6.* --force-reinstall
|
|
python -m pip install docutils==0.18.1 jinja2==3.0 urllib3==1.26.11 ninja
|
|
python -m pip install .[dev,1bit,autotuning,sd]
|
|
ds_report
|
|
- name: Python environment
|
|
run: |
|
|
python -m pip list
|
|
- name: Unit tests
|
|
run: |
|
|
unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch
|
|
cd tests
|
|
python -m pytest --color=yes --durations=0 --verbose -rF -m 'stable_diffusion' -k "TestStableDiffusion" unit/ --torch_ver="2.3" --cuda_ver="12"
|
|
|
|
- name: Open GitHub issue if weekly CI fails
|
|
if: ${{ failure() && (github.event_name == 'schedule') }}
|
|
uses: JasonEtco/create-an-issue@v2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
filename: .github/ISSUE_TEMPLATE/ci_failure_report.md
|
|
update_existing: true
|