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
renzhc
diffusers_dcu
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
Show 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,104 +12,332 @@ env:
PYTEST_TIMEOUT
:
600
RUN_SLOW
:
yes
RUN_NIGHTLY
:
yes
PIPELINE_USAGE_CUTOFF
:
5000
SLACK_API_TOKEN
:
${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}
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
:
fail-fast
:
false
matrix
:
config
:
-
name
:
Nightly PyTorch CUDA tests on Ubuntu
framework
:
pytorch
runner
:
docker-gpu
module
:
${{ fromJson(needs.setup_torch_cuda_pipeline_matrix.outputs.pipeline_test_matrix) }}
runs-on
:
[
single-gpu
,
nvidia-gpu
,
t4
,
ci
]
container
:
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
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ --gpus
0
steps
:
-
name
:
Checkout diffusers
uses
:
actions/checkout@v3
with
:
fetch-depth
:
2
-
name
:
NVIDIA-SMI
run
:
nvidia-smi
name
:
${{ matrix.config.name }}
-
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
runs-on
:
${{ matrix.config.runner }}
-
name
:
Environment
run
:
|
python utils/print_env.py
container
:
image
:
${{ matrix.config.image }}
options
:
--shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ ${{ matrix.config.runner == 'docker-tpu' && '--privileged' || '--gpus 0'}}
-
name
:
Nightly PyTorch CUDA checkpoint (pipelines) tests
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_pipeline_${{ matrix.module }}_cuda \
--report-log=tests_pipeline_${{ matrix.module }}_cuda.log \
tests/pipelines/${{ matrix.module }}
-
name
:
Failure short reports
if
:
${{ failure() }}
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
if
:
${{ always() }}
uses
:
actions/upload-artifact@v2
with
:
name
:
pipeline_${{ matrix.module }}_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_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
:
NVIDIA-SMI
if
:
${{ matrix.config.runner == 'docker-gpu' }}
run
:
|
nvidia-smi
-
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 -U transformers@git+https://github.com/huggingface/transformers
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate
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 utils/print_env.py
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
PyTorch CUDA tests
if
:
${{ matrix.
config.framework == 'pytorch
' }}
-
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_${{ matrix.config.report }} \
--report-log=${{ matrix.config.report }}.log \
tests/
--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
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 \
--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
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 \
--make-reports=tests_
onnx_cuda
\
--report-log=
tests_onnx_cuda
.log \
tests/
-
name
:
Failure short reports
if
:
${{ failure() }}
run
:
cat reports/tests_${{ matrix.config.report }}_failures_short.txt
run
:
|
cat reports/tests_onnx_cuda_stats.txt
cat reports/tests_onnx_cuda_failures_short.txt
-
name
:
Test suite reports artifacts
if
:
${{ always() }}
...
...
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