Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
diffusers
Commits
73f28708
Unverified
Commit
73f28708
authored
Mar 28, 2024
by
Sayak Paul
Committed by
GitHub
Mar 28, 2024
Browse files
Improve nightly tests (#7385)
* flesh out the nightly tests * address feedback.
parent
0cbc78f0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
299 additions
and
71 deletions
+299
-71
.github/workflows/nightly_tests.yml
.github/workflows/nightly_tests.yml
+299
-71
No files found.
.github/workflows/nightly_tests.yml
View file @
73f28708
...
@@ -12,110 +12,96 @@ env:
...
@@ -12,110 +12,96 @@ env:
PYTEST_TIMEOUT
:
600
PYTEST_TIMEOUT
:
600
RUN_SLOW
:
yes
RUN_SLOW
:
yes
RUN_NIGHTLY
:
yes
RUN_NIGHTLY
:
yes
PIPELINE_USAGE_CUTOFF
:
5000
SLACK_API_TOKEN
:
${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}
SLACK_API_TOKEN
:
${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}
jobs
:
jobs
:
run_nightly_tests
:
setup_torch_cuda_pipeline_matrix
:
name
:
Setup Torch Pipelines Matrix
runs-on
:
ubuntu-latest
outputs
:
pipeline_test_matrix
:
${{ steps.fetch_pipeline_matrix.outputs.pipeline_test_matrix }}
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
Set up Python
uses
:
actions/setup-python@v4
with
:
python-version
:
"
3.8"
-
name
:
Install dependencies
run
:
|
pip install -e .
pip install huggingface_hub
-
name
:
Fetch Pipeline Matrix
id
:
fetch_pipeline_matrix
run
:
|
matrix=$(python utils/fetch_torch_cuda_pipeline_test_matrix.py)
echo $matrix
echo "pipeline_test_matrix=$matrix" >> $GITHUB_OUTPUT
-
name
:
Pipeline Tests Artifacts
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
test-pipelines.json
path
:
reports
run_nightly_tests_for_torch_pipelines
:
name
:
Torch Pipelines CUDA Nightly Tests
needs
:
setup_torch_cuda_pipeline_matrix
strategy
:
strategy
:
fail-fast
:
false
fail-fast
:
false
matrix
:
matrix
:
config
:
module
:
${{ fromJson(needs.setup_torch_cuda_pipeline_matrix.outputs.pipeline_test_matrix) }}
-
name
:
Nightly PyTorch CUDA tests on Ubuntu
runs-on
:
[
single-gpu
,
nvidia-gpu
,
t4
,
ci
]
framework
:
pytorch
runner
:
docker-gpu
image
:
diffusers/diffusers-pytorch-cuda
report
:
torch_cuda
-
name
:
Nightly Flax TPU tests on Ubuntu
framework
:
flax
runner
:
docker-tpu
image
:
diffusers/diffusers-flax-tpu
report
:
flax_tpu
-
name
:
Nightly ONNXRuntime CUDA tests on Ubuntu
framework
:
onnxruntime
runner
:
docker-gpu
image
:
diffusers/diffusers-onnxruntime-cuda
report
:
onnx_cuda
name
:
${{ matrix.config.name }}
runs-on
:
${{ matrix.config.runner }}
container
:
container
:
image
:
${{ matrix.config.image }}
image
:
diffusers/diffusers-pytorch-cuda
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ ${{ matrix.config.runner == 'docker-tpu' && '--privileged' || '--gpus 0'}}
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ --gpus
0
defaults
:
run
:
shell
:
bash
steps
:
steps
:
-
name
:
Checkout diffusers
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
uses
:
actions/checkout@v3
with
:
with
:
fetch-depth
:
2
fetch-depth
:
2
-
name
:
NVIDIA-SMI
-
name
:
NVIDIA-SMI
if
:
${{ matrix.config.runner == 'docker-gpu' }}
run
:
nvidia-smi
run
:
|
nvidia-smi
-
name
:
Install dependencies
-
name
:
Install dependencies
run
:
|
run
:
|
apt-get update && apt-get install libsndfile1-dev libgl1 -y
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m uv pip install -e [quality,test]
python -m uv pip install -e [quality,test]
python -m uv pip install -U transformers@git+https://github.com/huggingface/transformers
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate.git
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate
python -m uv pip install pytest-reportlog
python -m uv pip install pytest-reportlog
-
name
:
Environment
-
name
:
Environment
run
:
|
run
:
|
python utils/print_env.py
python utils/print_env.py
-
name
:
Run nightly PyTorch CUDA tests
-
name
:
Nightly PyTorch CUDA checkpoint (pipelines) tests
if
:
${{ matrix.config.framework == 'pytorch' }}
env
:
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
# https://pytorch.org/docs/stable/notes/randomness.html#avoiding-nondeterministic-algorithms
CUBLAS_WORKSPACE_CONFIG
:
:16:8
run
:
|
run
:
|
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v -k "not Flax and not Onnx" \
-s -v -k "not Flax and not Onnx" \
--make-reports=tests_${{ matrix.config.report }} \
--make-reports=tests_pipeline_${{ matrix.module }}_cuda \
--report-log=${{ matrix.config.report }}.log \
--report-log=tests_pipeline_${{ matrix.module }}_cuda.log \
tests/
tests/pipelines/${{ matrix.module }}
-
name
:
Run nightly Flax TPU tests
if
:
${{ matrix.config.framework == 'flax' }}
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
run
:
|
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m pytest -n 0 \
-s -v -k "Flax" \
--make-reports=tests_${{ matrix.config.report }} \
--report-log=${{ matrix.config.report }}.log \
tests/
-
name
:
Run nightly ONNXRuntime CUDA tests
if
:
${{ matrix.config.framework == 'onnxruntime' }}
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
run
:
|
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v -k "Onnx" \
--make-reports=tests_${{ matrix.config.report }} \
--report-log=${{ matrix.config.report }}.log \
tests/
-
name
:
Failure short reports
-
name
:
Failure short reports
if
:
${{ failure() }}
if
:
${{ failure() }}
run
:
cat reports/tests_${{ matrix.config.report }}_failures_short.txt
run
:
|
cat reports/tests_pipeline_${{ matrix.module }}_cuda_stats.txt
cat reports/tests_pipeline_${{ matrix.module }}_cuda_failures_short.txt
-
name
:
Test suite reports artifacts
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
uses
:
actions/upload-artifact@v2
with
:
with
:
name
:
${{ matrix.
config.report
}}_test_reports
name
:
pipeline_
${{ matrix.
module
}}_test_reports
path
:
reports
path
:
reports
-
name
:
Generate Report and Notify Channel
-
name
:
Generate Report and Notify Channel
...
@@ -124,6 +110,248 @@ jobs:
...
@@ -124,6 +110,248 @@ jobs:
pip install slack_sdk tabulate
pip install slack_sdk tabulate
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
run_nightly_tests_for_other_torch_modules
:
name
:
Torch Non-Pipelines CUDA Nightly Tests
runs-on
:
docker-gpu
container
:
image
:
diffusers/diffusers-pytorch-cuda
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ --gpus
0
defaults
:
run
:
shell
:
bash
strategy
:
matrix
:
module
:
[
models
,
schedulers
,
others
,
examples
]
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
Install dependencies
run
:
|
apt-get update && apt-get install libsndfile1-dev libgl1 -y
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m uv pip install -e [quality,test]
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate.git
python -m uv pip install pytest-reportlog
-
name
:
Environment
run
:
python utils/print_env.py
-
name
:
Run nightly PyTorch CUDA tests for non-pipeline modules
if
:
${{ matrix.module != 'examples'}}
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
# https://pytorch.org/docs/stable/notes/randomness.html#avoiding-nondeterministic-algorithms
CUBLAS_WORKSPACE_CONFIG
:
:16:8
run
:
|
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v -k "not Flax and not Onnx" \
--make-reports=tests_torch_${{ matrix.module }}_cuda \
--report-log=tests_torch_${{ matrix.module }}_cuda.log \
tests/${{ matrix.module }}
-
name
:
Run nightly example tests with Torch
if
:
${{ matrix.module == 'examples' }}
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
# https://pytorch.org/docs/stable/notes/randomness.html#avoiding-nondeterministic-algorithms
CUBLAS_WORKSPACE_CONFIG
:
:16:8
run
:
|
python -m uv pip install peft@git+https://github.com/huggingface/peft.git
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v --make-reports=examples_torch_cuda \
--report-log=examples_torch_cuda.log \
examples/
-
name
:
Failure short reports
if
:
${{ failure() }}
run
:
|
cat reports/tests_torch_${{ matrix.module }}_cuda_stats.txt
cat reports/tests_torch_${{ matrix.module }}_cuda_failures_short.txt
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
torch_${{ matrix.module }}_cuda_test_reports
path
:
reports
-
name
:
Generate Report and Notify Channel
if
:
always()
run
:
|
pip install slack_sdk tabulate
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
run_lora_nightly_tests
:
name
:
Nightly LoRA Tests with PEFT and TORCH
runs-on
:
docker-gpu
container
:
image
:
diffusers/diffusers-pytorch-cuda
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ --gpus
0
defaults
:
run
:
shell
:
bash
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
Install dependencies
run
:
|
apt-get update && apt-get install libsndfile1-dev libgl1 -y
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m uv pip install -e [quality,test]
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate.git
python -m uv pip install peft@git+https://github.com/huggingface/peft.git
python -m uv pip install pytest-reportlog
-
name
:
Environment
run
:
python utils/print_env.py
-
name
:
Run nightly LoRA tests with PEFT and Torch
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
# https://pytorch.org/docs/stable/notes/randomness.html#avoiding-nondeterministic-algorithms
CUBLAS_WORKSPACE_CONFIG
:
:16:8
run
:
|
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v -k "not Flax and not Onnx" \
--make-reports=tests_torch_lora_cuda \
--report-log=tests_torch_lora_cuda.log \
tests/lora
-
name
:
Failure short reports
if
:
${{ failure() }}
run
:
|
cat reports/tests_torch_lora_cuda_stats.txt
cat reports/tests_torch_lora_cuda_failures_short.txt
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
torch_lora_cuda_test_reports
path
:
reports
-
name
:
Generate Report and Notify Channel
if
:
always()
run
:
|
pip install slack_sdk tabulate
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
run_flax_tpu_tests
:
name
:
Nightly Flax TPU Tests
runs-on
:
docker-tpu
container
:
image
:
diffusers/diffusers-flax-tpu
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ --privileged
defaults
:
run
:
shell
:
bash
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
Install dependencies
run
:
|
apt-get update && apt-get install libsndfile1-dev libgl1 -y
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m uv pip install -e [quality,test]
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate.git
python -m uv pip install pytest-reportlog
-
name
:
Environment
run
:
python utils/print_env.py
-
name
:
Run nightly Flax TPU tests
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
run
:
|
python -m pytest -n 0 \
-s -v -k "Flax" \
--make-reports=tests_flax_tpu \
--report-log=tests_flax_tpu.log \
tests/
-
name
:
Failure short reports
if
:
${{ failure() }}
run
:
|
cat reports/tests_flax_tpu_stats.txt
cat reports/tests_flax_tpu_failures_short.txt
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
flax_tpu_test_reports
path
:
reports
-
name
:
Generate Report and Notify Channel
if
:
always()
run
:
|
pip install slack_sdk tabulate
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
run_nightly_onnx_tests
:
name
:
Nightly ONNXRuntime CUDA tests on Ubuntu
runs-on
:
docker-gpu
container
:
image
:
diffusers/diffusers-onnxruntime-cuda
options
:
--gpus 0 --shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
NVIDIA-SMI
run
:
nvidia-smi
-
name
:
Install dependencies
run
:
|
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
python -m uv pip install -e [quality,test]
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate.git
python -m uv pip install pytest-reportlog
-
name
:
Environment
run
:
python utils/print_env.py
-
name
:
Run nightly ONNXRuntime CUDA tests
env
:
HUGGING_FACE_HUB_TOKEN
:
${{ secrets.HUGGING_FACE_HUB_TOKEN }}
run
:
|
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
-s -v -k "Onnx" \
--make-reports=tests_onnx_cuda \
--report-log=tests_onnx_cuda.log \
tests/
-
name
:
Failure short reports
if
:
${{ failure() }}
run
:
|
cat reports/tests_onnx_cuda_stats.txt
cat reports/tests_onnx_cuda_failures_short.txt
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
${{ matrix.config.report }}_test_reports
path
:
reports
-
name
:
Generate Report and Notify Channel
if
:
always()
run
:
|
pip install slack_sdk tabulate
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY
run_nightly_tests_apple_m1
:
run_nightly_tests_apple_m1
:
name
:
Nightly PyTorch MPS tests on MacOS
name
:
Nightly PyTorch MPS tests on MacOS
runs-on
:
[
self-hosted
,
apple-m1
]
runs-on
:
[
self-hosted
,
apple-m1
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment