Skip to content

Commit 8bc5f7a

Browse files
authored
Merge branch 'main' into redux
2 parents b8dfdf7 + 827b6c2 commit 8bc5f7a

File tree

7 files changed

+63
-6
lines changed

7 files changed

+63
-6
lines changed

.github/workflows/nightly_tests.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,64 @@ jobs:
347347
pip install slack_sdk tabulate
348348
python utils/log_reports.py >> $GITHUB_STEP_SUMMARY
349349
350+
run_nightly_quantization_tests:
351+
name: Torch quantization nightly tests
352+
strategy:
353+
fail-fast: false
354+
max-parallel: 2
355+
matrix:
356+
config:
357+
- backend: "bitsandbytes"
358+
test_location: "bnb"
359+
runs-on:
360+
group: aws-g6e-xlarge-plus
361+
container:
362+
image: diffusers/diffusers-pytorch-cuda
363+
options: --shm-size "20gb" --ipc host --gpus 0
364+
steps:
365+
- name: Checkout diffusers
366+
uses: actions/checkout@v3
367+
with:
368+
fetch-depth: 2
369+
- name: NVIDIA-SMI
370+
run: nvidia-smi
371+
- name: Install dependencies
372+
run: |
373+
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH"
374+
python -m uv pip install -e [quality,test]
375+
python -m uv pip install -U ${{ matrix.config.backend }}
376+
python -m uv pip install pytest-reportlog
377+
- name: Environment
378+
run: |
379+
python utils/print_env.py
380+
- name: ${{ matrix.config.backend }} quantization tests on GPU
381+
env:
382+
HF_TOKEN: ${{ secrets.DIFFUSERS_HF_HUB_READ_TOKEN }}
383+
# https://pytorch.org/docs/stable/notes/randomness.html#avoiding-nondeterministic-algorithms
384+
CUBLAS_WORKSPACE_CONFIG: :16:8
385+
BIG_GPU_MEMORY: 40
386+
run: |
387+
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
388+
--make-reports=tests_${{ matrix.config.backend }}_torch_cuda \
389+
--report-log=tests_${{ matrix.config.backend }}_torch_cuda.log \
390+
tests/quantization/${{ matrix.config.test_location }}
391+
- name: Failure short reports
392+
if: ${{ failure() }}
393+
run: |
394+
cat reports/tests_${{ matrix.config.backend }}_torch_cuda_stats.txt
395+
cat reports/tests_${{ matrix.config.backend }}_torch_cuda_failures_short.txt
396+
- name: Test suite reports artifacts
397+
if: ${{ always() }}
398+
uses: actions/upload-artifact@v4
399+
with:
400+
name: torch_cuda_${{ matrix.config.backend }}_reports
401+
path: reports
402+
- name: Generate Report and Notify Channel
403+
if: always()
404+
run: |
405+
pip install slack_sdk tabulate
406+
python utils/log_reports.py >> $GITHUB_STEP_SUMMARY
407+
350408
# M1 runner currently not well supported
351409
# TODO: (Dhruv) add these back when we setup better testing for Apple Silicon
352410
# run_nightly_tests_apple_m1:

scripts/convert_cogview3_to_diffusers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
from diffusers.utils.import_utils import is_accelerate_available
3737

3838

39-
CTX = init_empty_weights if is_accelerate_available else nullcontext
39+
CTX = init_empty_weights if is_accelerate_available() else nullcontext
4040

4141
TOKENIZER_MAX_LENGTH = 224
4242

scripts/convert_flux_to_diffusers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
--vae
3232
"""
3333

34-
CTX = init_empty_weights if is_accelerate_available else nullcontext
34+
CTX = init_empty_weights if is_accelerate_available() else nullcontext
3535

3636
parser = argparse.ArgumentParser()
3737
parser.add_argument("--original_state_dict_repo_id", default=None, type=str)

scripts/convert_mochi_to_diffusers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from diffusers.utils.import_utils import is_accelerate_available
1111

1212

13-
CTX = init_empty_weights if is_accelerate_available else nullcontext
13+
CTX = init_empty_weights if is_accelerate_available() else nullcontext
1414

1515
TOKENIZER_MAX_LENGTH = 256
1616

scripts/convert_sd3_to_diffusers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from diffusers.utils.import_utils import is_accelerate_available
1212

1313

14-
CTX = init_empty_weights if is_accelerate_available else nullcontext
14+
CTX = init_empty_weights if is_accelerate_available() else nullcontext
1515

1616
parser = argparse.ArgumentParser()
1717
parser.add_argument("--checkpoint_path", type=str)

tests/quantization/bnb/test_4bit.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ def test_quality(self):
432432
expected_slice = np.array([0.1123, 0.1296, 0.1609, 0.1042, 0.1230, 0.1274, 0.0928, 0.1165, 0.1216])
433433

434434
max_diff = numpy_cosine_similarity_distance(expected_slice, out_slice)
435-
print(f"{max_diff=}")
436435
self.assertTrue(max_diff < 1e-2)
437436

438437
def test_generate_quality_dequantize(self):

tests/quantization/bnb/test_mixed_int8.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ def test_quality(self):
369369
output_type="np",
370370
).images
371371
out_slice = output[0, -3:, -3:, -1].flatten()
372-
expected_slice = np.array([0.0149, 0.0322, 0.0073, 0.0134, 0.0332, 0.011, 0.002, 0.0232, 0.0193])
372+
expected_slice = np.array([0.0376, 0.0359, 0.0015, 0.0449, 0.0479, 0.0098, 0.0083, 0.0295, 0.0295])
373373

374374
max_diff = numpy_cosine_similarity_distance(expected_slice, out_slice)
375375
self.assertTrue(max_diff < 1e-2)

0 commit comments

Comments
 (0)