From 3bc6413f6d89841ebe6de01aef24ff3a30da3461 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Wed, 5 Oct 2022 18:05:46 -0700 Subject: [PATCH 01/27] benchmarking deployment --- .gitignore | 1 + benchmarking/Dockerfile | 8 ++++++++ benchmarking/README.md | 23 +++++++++++++++++++++++ benchmarking/build-image.sh | 5 +++++ benchmarking/run_benchmark.sh | 16 ++++++++++++++++ benchmarking/setup.sh | 32 ++++++++++++++++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 benchmarking/Dockerfile create mode 100644 benchmarking/README.md create mode 100644 benchmarking/build-image.sh create mode 100644 benchmarking/run_benchmark.sh create mode 100644 benchmarking/setup.sh diff --git a/.gitignore b/.gitignore index dea414e..9c29f69 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ model_zoo/ outputs/ *benchmark_tmp.csv +*benchmark.tar # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/benchmarking/Dockerfile b/benchmarking/Dockerfile new file mode 100644 index 0000000..5bca483 --- /dev/null +++ b/benchmarking/Dockerfile @@ -0,0 +1,8 @@ +FROM nvidia/cuda:11.2.1-base-ubuntu20.04 +RUN \ + apt-get -y update \ + && apt-get -y install -y git python3 python3-pip \ + && git clone https://github.com/LambdaLabsML/lambda-diffusers.git \ + && cd lambda-diffusers \ + && pip install -r requirements.txt +CMD ["python3", "-u", "/lambda-diffusers/scripts/benchmark.py"] \ No newline at end of file diff --git a/benchmarking/README.md b/benchmarking/README.md new file mode 100644 index 0000000..68f1bd8 --- /dev/null +++ b/benchmarking/README.md @@ -0,0 +1,23 @@ +## Install requirements (ie docker engine) + +``` +/bin/bash setup.sh +``` + +## Build docker image (optional if `benchmark.tar` is already present) + +``` +/bin/bash build_image.sh +``` + +## Run the benchmark + +Set your hugging face access token as environment variable: +``` +export ACCESS_TOKEN= +``` + +Run the benchmark: +``` +/bin/bash run_benchmark.sh +``` \ No newline at end of file diff --git a/benchmarking/build-image.sh b/benchmarking/build-image.sh new file mode 100644 index 0000000..d652c0d --- /dev/null +++ b/benchmarking/build-image.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Build benchmark docker image and save as .tar file +docker build -t benchmark -f ./Dockerfile . +docker save -o ./benchmark.tar benchmark:latest \ No newline at end of file diff --git a/benchmarking/run_benchmark.sh b/benchmarking/run_benchmark.sh new file mode 100644 index 0000000..6188f71 --- /dev/null +++ b/benchmarking/run_benchmark.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Load the benchmark image from .tar file into Docker +docker load -i ./benchmark.tar + +# Run benchmark +# 1. run the container +# 2. wait for benchmark completion +# 3. export benchmark output to host` +docker build -t benchmark -f ./Dockerfile . && \ +printf "\nRunning the diffusers benchmark..." && \ +containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -t -d benchmark) && \ +docker wait ${containerid} && \ +docker cp \ + ${containerid}:/lambda-diffusers/benchmark_tmp.csv ./benchmark_tmp.csv && \ +printf "\nDiffuser benchmark complete! -> [benchmark_tmp.csv]" diff --git a/benchmarking/setup.sh b/benchmarking/setup.sh new file mode 100644 index 0000000..6f7138a --- /dev/null +++ b/benchmarking/setup.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Installing Docker and The Docker Utility Engine for NVIDIA GPUs +# cf :https://docs.nvidia.com/ai-enterprise/deployment-guide/dg-docker.html + +# Docker (sometimes rebooting system is necessary for this to work...) +sudo apt-get update +sudo apt-get remove docker docker-engine docker.io -y +sudo apt install containerd -y +sudo apt install docker.io -y +sudo systemctl start docker +sudo systemctl enable docker +docker --version + +# Put the user in the docker group +sudo usermod -a -G docker $USER +newgrp docker + +# Nvidia Docker +sudo apt install curl +distribution=$(. /etc/os-release;echo $ID$VERSION_ID) +curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - +curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list + +sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit +sudo systemctl restart docker + +# Test Nvidia Docker +# sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi + +## Erase all Docker images [!!! CAUTION !!!] +# docker rmi -f $(docker images -a -q) From ad31ad60e4e267f575cede89085bc856b0d41816 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 16:15:04 -0700 Subject: [PATCH 02/27] benchmark docker somewhat streamlined, w README --- benchmark-deploy/Dockerfile | 8 ++++ benchmark-deploy/README.md | 70 +++++++++++++++++++++++++++++++++++ benchmarking/Dockerfile | 8 ---- benchmarking/README.md | 23 ------------ benchmarking/build-image.sh | 5 --- benchmarking/run_benchmark.sh | 16 -------- benchmarking/setup.sh | 32 ---------------- 7 files changed, 78 insertions(+), 84 deletions(-) create mode 100644 benchmark-deploy/Dockerfile create mode 100644 benchmark-deploy/README.md delete mode 100644 benchmarking/Dockerfile delete mode 100644 benchmarking/README.md delete mode 100644 benchmarking/build-image.sh delete mode 100644 benchmarking/run_benchmark.sh delete mode 100644 benchmarking/setup.sh diff --git a/benchmark-deploy/Dockerfile b/benchmark-deploy/Dockerfile new file mode 100644 index 0000000..8be068f --- /dev/null +++ b/benchmark-deploy/Dockerfile @@ -0,0 +1,8 @@ +FROM nvidia/cuda:11.2.1-base-ubuntu20.04 +RUN apt-get update && \ + apt-get install --no-install-recommends --no-install-suggests -y \ + curl python3 python3-pip +WORKDIR /lambda_diffusers +COPY . . +RUN pip3 install --no-cache-dir -r requirements.txt +CMD ["python3", "-u", "scripts/benchmark.py", "--samples", "1,2,4,8,16"] \ No newline at end of file diff --git a/benchmark-deploy/README.md b/benchmark-deploy/README.md new file mode 100644 index 0000000..1b81652 --- /dev/null +++ b/benchmark-deploy/README.md @@ -0,0 +1,70 @@ + +# Run the diffuser benchmark from a docker container + +The following instructions show how to run the benchmarking program from a docker container on Ubuntu. + +## Prerequisites + +### Get a huggingface access token + +Create a huggingface account. +Get a [huggingface access token](https://huggingface.co/docs/hub/security-tokens). + +### Install NVIDIA docker + +We first install docker: +``` +# Install +sudo apt-get update +sudo apt-get remove docker docker-engine docker.io -y +sudo apt install containerd -y +sudo apt install docker.io -y +sudo systemctl start docker +sudo systemctl enable docker + +# Test install +docker --version + +# Put the user in the docker group +sudo usermod -a -G docker $USER +newgrp docker +``` + +We install requirements to run docker containers leveraging NVIDIA GPUs: +``` +# Install +sudo apt install curl +distribution=$(. /etc/os-release;echo $ID$VERSION_ID) +curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - +curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list + +sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit +sudo systemctl restart docker + +# Test install +sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi +``` + + +3. Build the benchmark docker image + +``` +docker build -t benchmark -f ./benchmarking/Dockerfile . +``` + +## Running the benchmark + +Set the HuggingFace access token as environment variable: +``` +export ACCESS_TOKEN= +``` + +Run the benchmark program from the container and export the output `.csv` file to the host: +``` +containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} --entrypoint "python3" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ +docker wait ${containerid} && \ +docker cp \ + ${containerid}:/lambda-diffusers/benchmark_tmp.csv ./benchmark_tmp.csv +``` + +*Note that the arguments `scripts/benchmark.py --samples=1,2,4,8,16` can be changed to point to a different script or use different arguments.* \ No newline at end of file diff --git a/benchmarking/Dockerfile b/benchmarking/Dockerfile deleted file mode 100644 index 5bca483..0000000 --- a/benchmarking/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM nvidia/cuda:11.2.1-base-ubuntu20.04 -RUN \ - apt-get -y update \ - && apt-get -y install -y git python3 python3-pip \ - && git clone https://github.com/LambdaLabsML/lambda-diffusers.git \ - && cd lambda-diffusers \ - && pip install -r requirements.txt -CMD ["python3", "-u", "/lambda-diffusers/scripts/benchmark.py"] \ No newline at end of file diff --git a/benchmarking/README.md b/benchmarking/README.md deleted file mode 100644 index 68f1bd8..0000000 --- a/benchmarking/README.md +++ /dev/null @@ -1,23 +0,0 @@ -## Install requirements (ie docker engine) - -``` -/bin/bash setup.sh -``` - -## Build docker image (optional if `benchmark.tar` is already present) - -``` -/bin/bash build_image.sh -``` - -## Run the benchmark - -Set your hugging face access token as environment variable: -``` -export ACCESS_TOKEN= -``` - -Run the benchmark: -``` -/bin/bash run_benchmark.sh -``` \ No newline at end of file diff --git a/benchmarking/build-image.sh b/benchmarking/build-image.sh deleted file mode 100644 index d652c0d..0000000 --- a/benchmarking/build-image.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Build benchmark docker image and save as .tar file -docker build -t benchmark -f ./Dockerfile . -docker save -o ./benchmark.tar benchmark:latest \ No newline at end of file diff --git a/benchmarking/run_benchmark.sh b/benchmarking/run_benchmark.sh deleted file mode 100644 index 6188f71..0000000 --- a/benchmarking/run_benchmark.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Load the benchmark image from .tar file into Docker -docker load -i ./benchmark.tar - -# Run benchmark -# 1. run the container -# 2. wait for benchmark completion -# 3. export benchmark output to host` -docker build -t benchmark -f ./Dockerfile . && \ -printf "\nRunning the diffusers benchmark..." && \ -containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -t -d benchmark) && \ -docker wait ${containerid} && \ -docker cp \ - ${containerid}:/lambda-diffusers/benchmark_tmp.csv ./benchmark_tmp.csv && \ -printf "\nDiffuser benchmark complete! -> [benchmark_tmp.csv]" diff --git a/benchmarking/setup.sh b/benchmarking/setup.sh deleted file mode 100644 index 6f7138a..0000000 --- a/benchmarking/setup.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# Installing Docker and The Docker Utility Engine for NVIDIA GPUs -# cf :https://docs.nvidia.com/ai-enterprise/deployment-guide/dg-docker.html - -# Docker (sometimes rebooting system is necessary for this to work...) -sudo apt-get update -sudo apt-get remove docker docker-engine docker.io -y -sudo apt install containerd -y -sudo apt install docker.io -y -sudo systemctl start docker -sudo systemctl enable docker -docker --version - -# Put the user in the docker group -sudo usermod -a -G docker $USER -newgrp docker - -# Nvidia Docker -sudo apt install curl -distribution=$(. /etc/os-release;echo $ID$VERSION_ID) -curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list - -sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit -sudo systemctl restart docker - -# Test Nvidia Docker -# sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi - -## Erase all Docker images [!!! CAUTION !!!] -# docker rmi -f $(docker images -a -q) From 7d985730ab62955e7a6aa3cdb6a59eba23237691 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 16:50:19 -0700 Subject: [PATCH 03/27] run container in detach mode for containerid variable assignment to work --- benchmark-deploy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark-deploy/README.md b/benchmark-deploy/README.md index 1b81652..b389152 100644 --- a/benchmark-deploy/README.md +++ b/benchmark-deploy/README.md @@ -61,7 +61,7 @@ export ACCESS_TOKEN= Run the benchmark program from the container and export the output `.csv` file to the host: ``` -containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} --entrypoint "python3" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ +containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -d --entrypoint "python3 -u" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ docker wait ${containerid} && \ docker cp \ ${containerid}:/lambda-diffusers/benchmark_tmp.csv ./benchmark_tmp.csv From e5979ac03e2edddafb2fbbe8de823eaeccc8a1b3 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 17:06:58 -0700 Subject: [PATCH 04/27] csv filepath typo --- benchmark-deploy/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/benchmark-deploy/README.md b/benchmark-deploy/README.md index b389152..581d825 100644 --- a/benchmark-deploy/README.md +++ b/benchmark-deploy/README.md @@ -61,10 +61,9 @@ export ACCESS_TOKEN= Run the benchmark program from the container and export the output `.csv` file to the host: ``` -containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -d --entrypoint "python3 -u" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ +containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -d --entrypoint "python3" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ docker wait ${containerid} && \ -docker cp \ - ${containerid}:/lambda-diffusers/benchmark_tmp.csv ./benchmark_tmp.csv +docker cp ${containerid}:/lambda_diffusers/benchmark_tmp.csv ./benchmark_tmp.csv ``` *Note that the arguments `scripts/benchmark.py --samples=1,2,4,8,16` can be changed to point to a different script or use different arguments.* \ No newline at end of file From 90bd1b4a22ea0c6061c27d027edab4a6836288e7 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 17:14:38 -0700 Subject: [PATCH 05/27] rm benchmark.tar --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9c29f69..dea414e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ model_zoo/ outputs/ *benchmark_tmp.csv -*benchmark.tar # Byte-compiled / optimized / DLL files __pycache__/ From 2c1e19ebf89b72fca07024ef84293b75a3a7f33d Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 18:11:55 -0700 Subject: [PATCH 06/27] cuda autocast y/n argument --- scripts/benchmark.py | 162 ++++++++++++++++++++++++++++--------------- 1 file changed, 107 insertions(+), 55 deletions(-) diff --git a/scripts/benchmark.py b/scripts/benchmark.py index 9158177..bfc7d8a 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -5,6 +5,7 @@ import pathlib import csv from contextlib import nullcontext +from sqlalchemy import false import torch from torch import autocast from diffusers import StableDiffusionPipeline, StableDiffusionOnnxPipeline @@ -13,6 +14,7 @@ prompt = "a photo of an astronaut riding a horse on mars" + def get_inference_pipeline(precision, backend): """ returns HuggingFace diffuser pipeline @@ -31,12 +33,14 @@ def get_inference_pipeline(precision, backend): torch_dtype=torch.float32 if precision == "single" else torch.float16, ) pipe = pipe.to(device) - else: + else: pipe = StableDiffusionOnnxPipeline.from_pretrained( "CompVis/stable-diffusion-v1-4", use_auth_token=os.environ["ACCESS_TOKEN"], revision="onnx", - provider="CPUExecutionProvider" if device.type=="cpu" else "CUDAExecutionProvider", + provider="CPUExecutionProvider" + if device.type == "cpu" + else "CUDAExecutionProvider", torch_dtype=torch.float32 if precision == "single" else torch.float16, ) @@ -51,22 +55,34 @@ def null_safety(images, **kwargs): return pipe -def do_inference(pipe, n_samples, precision, num_inference_steps): +def do_inference(pipe, n_samples, use_autocast, num_inference_steps): torch.cuda.empty_cache() - context = autocast if (device.type == "cuda" and precision == 'half') else nullcontext + context = ( + autocast if (device.type == "cuda" and use_autocast) else nullcontext + ) with context("cuda"): - images = pipe(prompt=[prompt] * n_samples, num_inference_steps=num_inference_steps).images + images = pipe( + prompt=[prompt] * n_samples, num_inference_steps=num_inference_steps + ).images return images -def get_inference_time(pipe, n_samples, n_repeats, precision, num_inference_steps): +def get_inference_time( + pipe, n_samples, n_repeats, use_autocast, num_inference_steps +): from torch.utils.benchmark import Timer + timer = Timer( - stmt="do_inference(pipe, n_samples, precision, num_inference_steps)", + stmt="do_inference(pipe, n_samples, use_autocast, num_inference_steps)", setup="from __main__ import do_inference", - globals={"pipe": pipe, "n_samples": n_samples, "precision": precision, "num_inference_steps": num_inference_steps}, - num_threads=multiprocessing.cpu_count() + globals={ + "pipe": pipe, + "n_samples": n_samples, + "use_autocast": use_autocast, + "num_inference_steps": num_inference_steps, + }, + num_threads=multiprocessing.cpu_count(), ) profile_result = timer.timeit( n_repeats @@ -74,20 +90,24 @@ def get_inference_time(pipe, n_samples, n_repeats, precision, num_inference_step return round(profile_result.mean, 2) -def get_inference_memory(pipe, n_samples, precision, num_inference_steps): +def get_inference_memory(pipe, n_samples, use_autocast, num_inference_steps): if not torch.cuda.is_available(): return 0 - + torch.cuda.empty_cache() - context = autocast if (device.type == "cuda" and precision == 'half') else nullcontext + context = autocast if (device.type == "cuda" and use_autocast) else nullcontext with context("cuda"): - images = pipe(prompt=[prompt] * n_samples, num_inference_steps=num_inference_steps).images + images = pipe( + prompt=[prompt] * n_samples, num_inference_steps=num_inference_steps + ).images mem = torch.cuda.memory_reserved() return round(mem / 1e9, 2) -def run_benchmark(n_repeats, n_samples, precision, backend, num_inference_steps): +def run_benchmark( + n_repeats, n_samples, precision, use_autocast, backend, num_inference_steps +): """ * n_repeats: nb datapoints for inference latency benchmark * n_samples: number of samples to generate (~ batch size) @@ -100,10 +120,16 @@ def run_benchmark(n_repeats, n_samples, precision, backend, num_inference_steps) pipe = get_inference_pipeline(precision, backend) logs = { - "memory": 0.00 if device.type=="cpu" else get_inference_memory(pipe, n_samples, precision, num_inference_steps), - "latency": get_inference_time(pipe, n_samples, n_repeats, precision, num_inference_steps), + "memory": 0.00 + if device.type == "cpu" + else get_inference_memory( + pipe, n_samples, use_autocast, num_inference_steps + ), + "latency": get_inference_time( + pipe, n_samples, n_repeats, use_autocast, num_inference_steps + ), } - print(f"n_samples: {n_samples}\tprecision: {precision}\tbackend: {backend}") + print(f"n_samples: {n_samples}\tprecision: {precision}\tautocast: {use_autocast}\tbackend: {backend}") print(logs, "\n") return logs @@ -115,9 +141,8 @@ def get_device_description(): """ if device.type == "cpu": name = subprocess.check_output( - "grep -m 1 'model name' /proc/cpuinfo", - shell=True - ).decode("utf-8") + "grep -m 1 'model name' /proc/cpuinfo", shell=True + ).decode("utf-8") name = " ".join(name.split(" ")[2:]).strip() return name else: @@ -130,6 +155,7 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): { "n_samples": (1, 2), "precision": ("single", "half"), + "autocast" : ("yes", "no") } * n_repeats: nb datapoints for inference latency benchmark """ @@ -137,7 +163,15 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): csv_fpath = pathlib.Path(__file__).parent.parent / "benchmark_tmp.csv" # create benchmark.csv if not exists if not os.path.isfile(csv_fpath): - header = ["device", "precision", "runtime", "n_samples", "latency", "memory"] + header = [ + "device", + "precision", + "autocast", + "runtime", + "n_samples", + "latency", + "memory", + ] with open(csv_fpath, "w") as f: writer = csv.writer(f) writer.writerow(header) @@ -148,30 +182,43 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): device_desc = get_device_description() for n_samples in grid["n_samples"]: for precision in grid["precision"]: - for backend in grid["backend"]: - try: - new_log = run_benchmark( - n_repeats=n_repeats, - n_samples=n_samples, - precision=precision, - backend=backend, - num_inference_steps=num_inference_steps - ) - except Exception as e: - if "CUDA out of memory" in str(e) or "Failed to allocate memory" in str(e): - print(str(e)) - torch.cuda.empty_cache() - new_log = { - "latency": -1.00, - "memory": -1.00 - } - else: - raise e - - latency = new_log["latency"] - memory = new_log["memory"] - new_row = [device_desc, precision, backend, n_samples, latency, memory] - writer.writerow(new_row) + use_autocast = False + if precision == "half": + for autocast in grid["autocast"]: + if autocast == "yes": + use_autocast = True + for backend in grid["backend"]: + try: + new_log = run_benchmark( + n_repeats=n_repeats, + n_samples=n_samples, + precision=precision, + use_autocast=use_autocast, + backend=backend, + num_inference_steps=num_inference_steps, + ) + except Exception as e: + if "CUDA out of memory" in str( + e + ) or "Failed to allocate memory" in str(e): + print(str(e)) + torch.cuda.empty_cache() + new_log = {"latency": -1.00, "memory": -1.00} + else: + raise e + + latency = new_log["latency"] + memory = new_log["memory"] + new_row = [ + device_desc, + precision, + autocast, + backend, + n_samples, + latency, + memory, + ] + writer.writerow(new_row) if __name__ == "__main__": @@ -179,17 +226,14 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): parser = argparse.ArgumentParser() parser.add_argument( - "--samples", + "--samples", default="1", - type=str, - help="Comma sepearated list of batch sizes (number of samples)" + type=str, + help="Comma sepearated list of batch sizes (number of samples)", ) parser.add_argument( - "--steps", - default=50, - type=int, - help="Number of diffusion steps." + "--steps", default=50, type=int, help="Number of diffusion steps." ) parser.add_argument( @@ -199,17 +243,25 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): help="Number of repeats.", ) + parser.add_argument( + "--autocast", + default="no", + type=str, + help="If 'yes', will perform additional runs with autocast activated for half precision inferences", + ) + args = parser.parse_args() grid = { - "n_samples": tuple(map(int, args.samples.split(","))), - # Only use single-precision for cpu because "LayerNormKernelImpl" not implemented for 'Half' on cpu, + "n_samples": tuple(map(int, args.samples.split(","))), + # Only use single-precision for cpu because "LayerNormKernelImpl" not implemented for 'Half' on cpu, # Remove autocast won't help. Ref: # https://github.com/CompVis/stable-diffusion/issues/307 "precision": ("single",) if device.type == "cpu" else ("single", "half"), + "autocast": ("no",) if args.autocast == "no" else ("yes", "no"), # Only use onnx for cpu, until issues are fixed by upstreams. Ref: # https://github.com/huggingface/diffusers/issues/489#issuecomment-1261577250 # https://github.com/huggingface/diffusers/pull/440 - "backend": ("pytorch", "onnx") if device.type == "cpu" else ("pytorch",) + "backend": ("pytorch", "onnx") if device.type == "cpu" else ("pytorch",), } run_benchmark_grid(grid, n_repeats=args.repeats, num_inference_steps=args.steps) From cbd70145afbcd1d860b5c6d2ff0f13457243f91f Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 18:15:23 -0700 Subject: [PATCH 07/27] oops Dockerfile committed but not the right branch --- benchmark-deploy/Dockerfile | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 benchmark-deploy/Dockerfile diff --git a/benchmark-deploy/Dockerfile b/benchmark-deploy/Dockerfile deleted file mode 100644 index 8be068f..0000000 --- a/benchmark-deploy/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM nvidia/cuda:11.2.1-base-ubuntu20.04 -RUN apt-get update && \ - apt-get install --no-install-recommends --no-install-suggests -y \ - curl python3 python3-pip -WORKDIR /lambda_diffusers -COPY . . -RUN pip3 install --no-cache-dir -r requirements.txt -CMD ["python3", "-u", "scripts/benchmark.py", "--samples", "1,2,4,8,16"] \ No newline at end of file From dfbacce45a450241a0ff82134e9ec82a132801e0 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Thu, 6 Oct 2022 18:16:07 -0700 Subject: [PATCH 08/27] oops README benchmark-deploy not in right branch --- benchmark-deploy/README.md | 69 -------------------------------------- 1 file changed, 69 deletions(-) delete mode 100644 benchmark-deploy/README.md diff --git a/benchmark-deploy/README.md b/benchmark-deploy/README.md deleted file mode 100644 index 581d825..0000000 --- a/benchmark-deploy/README.md +++ /dev/null @@ -1,69 +0,0 @@ - -# Run the diffuser benchmark from a docker container - -The following instructions show how to run the benchmarking program from a docker container on Ubuntu. - -## Prerequisites - -### Get a huggingface access token - -Create a huggingface account. -Get a [huggingface access token](https://huggingface.co/docs/hub/security-tokens). - -### Install NVIDIA docker - -We first install docker: -``` -# Install -sudo apt-get update -sudo apt-get remove docker docker-engine docker.io -y -sudo apt install containerd -y -sudo apt install docker.io -y -sudo systemctl start docker -sudo systemctl enable docker - -# Test install -docker --version - -# Put the user in the docker group -sudo usermod -a -G docker $USER -newgrp docker -``` - -We install requirements to run docker containers leveraging NVIDIA GPUs: -``` -# Install -sudo apt install curl -distribution=$(. /etc/os-release;echo $ID$VERSION_ID) -curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list - -sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit -sudo systemctl restart docker - -# Test install -sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi -``` - - -3. Build the benchmark docker image - -``` -docker build -t benchmark -f ./benchmarking/Dockerfile . -``` - -## Running the benchmark - -Set the HuggingFace access token as environment variable: -``` -export ACCESS_TOKEN= -``` - -Run the benchmark program from the container and export the output `.csv` file to the host: -``` -containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -d --entrypoint "python3" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ -docker wait ${containerid} && \ -docker cp ${containerid}:/lambda_diffusers/benchmark_tmp.csv ./benchmark_tmp.csv -``` - -*Note that the arguments `scripts/benchmark.py --samples=1,2,4,8,16` can be changed to point to a different script or use different arguments.* \ No newline at end of file From 5cf05f4d689748e24e345d75dad66520606bd42a Mon Sep 17 00:00:00 2001 From: eolecvk Date: Tue, 11 Oct 2022 16:18:16 -0700 Subject: [PATCH 09/27] remove erroneous import --- scripts/benchmark.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/benchmark.py b/scripts/benchmark.py index bfc7d8a..4e94b8d 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -5,7 +5,6 @@ import pathlib import csv from contextlib import nullcontext -from sqlalchemy import false import torch from torch import autocast from diffusers import StableDiffusionPipeline, StableDiffusionOnnxPipeline From cc801b84fada6be2652cb07e2d0bdebf83c52a39 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Tue, 11 Oct 2022 16:27:25 -0700 Subject: [PATCH 10/27] add vscode to gitignore --- .gitignore | 2 ++ .vscode/settings.json | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index dea414e..d28572a 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,5 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ + +.vscode/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index de288e1..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "python.formatting.provider": "black" -} \ No newline at end of file From 1233af7987dd0f5b00dc1c979ddb41d80dfe3693 Mon Sep 17 00:00:00 2001 From: eolecvk Date: Tue, 11 Oct 2022 16:42:23 -0700 Subject: [PATCH 11/27] add dockerfile at root and update docs/benchmark to include docker instructions --- Dockerfile | 8 +++++ docs/benchmark.md | 76 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8be068f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM nvidia/cuda:11.2.1-base-ubuntu20.04 +RUN apt-get update && \ + apt-get install --no-install-recommends --no-install-suggests -y \ + curl python3 python3-pip +WORKDIR /lambda_diffusers +COPY . . +RUN pip3 install --no-cache-dir -r requirements.txt +CMD ["python3", "-u", "scripts/benchmark.py", "--samples", "1,2,4,8,16"] \ No newline at end of file diff --git a/docs/benchmark.md b/docs/benchmark.md index 9d8e92c..d4572a1 100644 --- a/docs/benchmark.md +++ b/docs/benchmark.md @@ -88,7 +88,9 @@ Interestingly, such a difference may not imply artifacts in half-precision's out You can use this [Lambda Diffusers](https://github.com/LambdaLabsML/lambda-diffusers) repository to reproduce the results presented in this article. -## Setup +### From your local machine + +#### Setup Before running the benchmark, make sure you have completed the repository [installation steps](../README.md#installation). @@ -99,7 +101,7 @@ You will then need to set the huggingface access token: export ACCESS_TOKEN= ``` -## Usage +#### Usage Launch the `benchmark.py` script to append benchmark results to the existing [benchmark.csv](../benchmark.csv) results file: ``` @@ -109,4 +111,72 @@ python ./scripts/benchmark.py Lauch the `benchmark_quality.py` script to compare the output of single-precision and half-precision models: ``` python ./scripts/benchmark_quality.py -``` \ No newline at end of file +``` + + +### From a docker container + +The following instructions show how to run the benchmarking program from a docker container on Ubuntu. + +## Prerequisites + +### Get a huggingface access token + +Create a huggingface account. +Get a [huggingface access token](https://huggingface.co/docs/hub/security-tokens). + +### Install NVIDIA docker + +This section can be skipped if the environment already uses [Lambda Stack](https://lambdalabs.com/lambda-stack-deep-learning-software) or if the experiments are running on a [Lambda cloud](https://lambdalabs.com/service/gpu-cloud) instance as docker and `nvidia-container-toolkit` comes pre-installed in these cases. + +We first install docker: +``` +# Install +sudo apt-get update +sudo apt-get remove docker docker-engine docker.io -y +sudo apt install containerd -y +sudo apt install docker.io -y +sudo systemctl start docker +sudo systemctl enable docker +# Test install +docker --version +# Put the user in the docker group +sudo usermod -a -G docker $USER +newgrp docker +``` + +We install requirements to run docker containers leveraging NVIDIA GPUs: +``` +# Install +sudo apt install curl +distribution=$(. /etc/os-release;echo $ID$VERSION_ID) +curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - +curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list +sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit +sudo systemctl restart docker +# Test install +sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi +``` + + +3. Build the benchmark docker image + +``` +docker build -t benchmark -f ./benchmarking/Dockerfile . +``` + +## Running the benchmark + +Set the HuggingFace access token as environment variable: +``` +export ACCESS_TOKEN= +``` + +Run the benchmark program from the container and export the output `.csv` file to the host: +``` +containerid=$(docker run --gpus all -e ACCESS_TOKEN=${ACCESS_TOKEN} -d --entrypoint "python3" benchmark:latest scripts/benchmark.py --samples=1,2,4,8,16) && \ +docker wait ${containerid} && \ +docker cp ${containerid}:/lambda_diffusers/benchmark_tmp.csv ./benchmark_tmp.csv +``` + +*Note that the arguments `scripts/benchmark.py --samples=1,2,4,8,16` can be changed to point to a different script or use different arguments.* \ No newline at end of file From d4e85c7d5587039728a9e9c7ed1e5e077f8d2f2a Mon Sep 17 00:00:00 2001 From: eolecvk Date: Tue, 11 Oct 2022 16:43:57 -0700 Subject: [PATCH 12/27] title levels fix --- docs/benchmark.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/benchmark.md b/docs/benchmark.md index d4572a1..4109382 100644 --- a/docs/benchmark.md +++ b/docs/benchmark.md @@ -118,14 +118,14 @@ python ./scripts/benchmark_quality.py The following instructions show how to run the benchmarking program from a docker container on Ubuntu. -## Prerequisites +#### Prerequisites -### Get a huggingface access token +#### Get a huggingface access token Create a huggingface account. Get a [huggingface access token](https://huggingface.co/docs/hub/security-tokens). -### Install NVIDIA docker +#### Install NVIDIA docker This section can be skipped if the environment already uses [Lambda Stack](https://lambdalabs.com/lambda-stack-deep-learning-software) or if the experiments are running on a [Lambda cloud](https://lambdalabs.com/service/gpu-cloud) instance as docker and `nvidia-container-toolkit` comes pre-installed in these cases. @@ -165,7 +165,7 @@ sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi docker build -t benchmark -f ./benchmarking/Dockerfile . ``` -## Running the benchmark +#### Running the benchmark Set the HuggingFace access token as environment variable: ``` From 4d4386e5d2ae667d18987b1a505a47efc643e9c9 Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Mon, 17 Oct 2022 14:39:37 +0100 Subject: [PATCH 13/27] update spaces link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eff5b26..0e2f381 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ __Stable Diffusion fine tuned on Pokémon by [Lambda Labs](https://lambdalabs.co [![Open in Replicate](https://img.shields.io/badge/%F0%9F%9A%80-Open%20in%20Replicate-%23fff891)](https://replicate.com/lambdal/text-to-pokemon) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/LambdaLabsML/lambda-diffusers/blob/main/notebooks/pokemon_demo.ipynb) +[![Open in Spaces](https://img.shields.io/badge/%F0%9F%A4%97-Open%20in%20Spaces-orange)](https://huggingface.co/spaces/lambdalabs/text-to-pokemon) Put in a text prompt and generate your own Pokémon character, no "prompt engineering" required! From 81ed22d9fe1b6463e7291732cc573cf8d3ef9297 Mon Sep 17 00:00:00 2001 From: Omar Sanseviero Date: Thu, 27 Oct 2022 10:37:51 +0200 Subject: [PATCH 14/27] Remove unneeded set_format --- lambda_diffusers/pipelines/pipeline_stable_diffusion_im_embed.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lambda_diffusers/pipelines/pipeline_stable_diffusion_im_embed.py b/lambda_diffusers/pipelines/pipeline_stable_diffusion_im_embed.py index 7b05876..486765f 100644 --- a/lambda_diffusers/pipelines/pipeline_stable_diffusion_im_embed.py +++ b/lambda_diffusers/pipelines/pipeline_stable_diffusion_im_embed.py @@ -25,7 +25,6 @@ def __init__( feature_extractor: CLIPFeatureExtractor, ): super().__init__() - scheduler = scheduler.set_format("pt") self.register_modules( vae=vae, image_encoder=image_encoder, From e9cc3cbee79277a7ab67d04b72efa8f763d52522 Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 24 Nov 2022 13:42:07 +0000 Subject: [PATCH 15/27] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ea7b0ed --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Lambda, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From ef843a02cf0bc4e96c44a95fb3f65fa1939125b6 Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Wed, 7 Dec 2022 15:52:26 +0000 Subject: [PATCH 16/27] Update README.md --- README.md | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0e2f381..e4aa00f 100644 --- a/README.md +++ b/README.md @@ -31,21 +31,33 @@ A fine-tuned version of Stable Diffusion conditioned on CLIP image embeddings to ### Usage ```python -from pathlib import Path -from lambda_diffusers import StableDiffusionImageEmbedPipeline +from diffusers import StableDiffusionImageVariationPipeline from PIL import Image -import torch -device = "cuda" if torch.cuda.is_available() else "cpu" -pipe = StableDiffusionImageEmbedPipeline.from_pretrained("lambdalabs/sd-image-variations-diffusers") -pipe = pipe.to(device) -im = Image.open("your/input/image/here.jpg") -num_samples = 4 -image = pipe(num_samples*[im], guidance_scale=3.0) -image = image["sample"] -base_path = Path("outputs/im2im") -base_path.mkdir(exist_ok=True, parents=True) -for idx, im in enumerate(image): - im.save(base_path/f"{idx:06}.jpg") + +device = "cuda:0" +sd_pipe = StableDiffusionImageVariationPipeline.from_pretrained( + "lambdalabs/sd-image-variations-diffusers", + revision="v2.0", + ) +sd_pipe = sd_pipe.to(device) + +im = Image.open("path/to/image.jpg") +tform = transforms.Compose([ + transforms.ToTensor(), + transforms.Resize( + (224, 224), + interpolation=transforms.InterpolationMode.BICUBIC, + antialias=False, + ), + transforms.Normalize( + [0.48145466, 0.4578275, 0.40821073], + [0.26862954, 0.26130258, 0.27577711]), +]) +inp = tform(im).to(device) + +out = sd_pipe(inp, guidance_scale=3) +out["images"][0].save("result.jpg") + ``` ## Pokemon text to image From cdddab876997042c4102127adbecc1f1749aaaae Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Tue, 20 Dec 2022 14:32:38 +0000 Subject: [PATCH 17/27] Update benchmark script, add Dockerfile --- scripts/Dockerfile | 13 +++++ scripts/Makefile | 17 ++++++ scripts/benchmark.py | 123 ++++++++++++++++++++++++++----------------- 3 files changed, 105 insertions(+), 48 deletions(-) create mode 100644 scripts/Dockerfile create mode 100644 scripts/Makefile diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 0000000..beb9793 --- /dev/null +++ b/scripts/Dockerfile @@ -0,0 +1,13 @@ +FROM nvcr.io/nvidia/pytorch:22.11-py3 + +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +RUN pip install --pre xformers +RUN pip install diffusers==0.11.0 accelerate transformers + +WORKDIR /workspace + +COPY benchmark.py /workspace/benchmark.py +RUN (printf '#!/bin/bash\npython benchmark.py \"$@\"\n' >> /entry.sh) && chmod a+x /entry.sh +ENTRYPOINT ["/entry.sh"] \ No newline at end of file diff --git a/scripts/Makefile b/scripts/Makefile new file mode 100644 index 0000000..9b722fb --- /dev/null +++ b/scripts/Makefile @@ -0,0 +1,17 @@ +bench: + docker build -t sd-bench . + docker run \ + --rm -it \ + --gpus all \ + --shm-size=128g \ + --net=host \ + -v $(PWD):/workspace/results \ + sd-bench \ + --steps 30 \ + --samples 1,2,4,8,16,32,64,128 \ + --autocast no \ + --xformers yes \ + --output_file /workspace/results/results.csv + +clean: + rm results.csv \ No newline at end of file diff --git a/scripts/benchmark.py b/scripts/benchmark.py index 4e94b8d..f7ce04c 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -5,6 +5,7 @@ import pathlib import csv from contextlib import nullcontext +import itertools import torch from torch import autocast from diffusers import StableDiffusionPipeline, StableDiffusionOnnxPipeline @@ -13,12 +14,18 @@ prompt = "a photo of an astronaut riding a horse on mars" +def make_bool(yes_or_no): + if yes_or_no.lower() == "yes": + return True + elif yes_or_no.lower() == "no": + return False + else: + raise ValueError(f"unrecognised input {yes_or_no}") def get_inference_pipeline(precision, backend): """ returns HuggingFace diffuser pipeline cf https://github.com/huggingface/diffusers#text-to-image-generation-with-stable-diffusion - note: could not download from CompVis/stable-diffusion-v1-4 (access restricted) """ assert precision in ("half", "single"), "precision in ['half', 'single']" @@ -28,7 +35,6 @@ def get_inference_pipeline(precision, backend): pipe = StableDiffusionPipeline.from_pretrained( "CompVis/stable-diffusion-v1-4", revision="main" if precision == "single" else "fp16", - use_auth_token=os.environ["ACCESS_TOKEN"], torch_dtype=torch.float32 if precision == "single" else torch.float16, ) pipe = pipe.to(device) @@ -103,9 +109,9 @@ def get_inference_memory(pipe, n_samples, use_autocast, num_inference_steps): mem = torch.cuda.memory_reserved() return round(mem / 1e9, 2) - +@torch.inference_mode() def run_benchmark( - n_repeats, n_samples, precision, use_autocast, backend, num_inference_steps + n_repeats, n_samples, precision, use_autocast, xformers, backend, num_inference_steps ): """ * n_repeats: nb datapoints for inference latency benchmark @@ -116,7 +122,14 @@ def run_benchmark( dict like {'memory usage': 17.70, 'latency': 86.71'} """ + print(f"n_samples: {n_samples}\tprecision: {precision}\tautocast: {use_autocast}\txformers: {xformers}\tbackend: {backend}") + pipe = get_inference_pipeline(precision, backend) + if xformers: + pipe.enable_xformers_memory_efficient_attention() + + if n_samples>16: + pipe.enable_vae_slicing() logs = { "memory": 0.00 @@ -128,8 +141,8 @@ def run_benchmark( pipe, n_samples, n_repeats, use_autocast, num_inference_steps ), } - print(f"n_samples: {n_samples}\tprecision: {precision}\tautocast: {use_autocast}\tbackend: {backend}") print(logs, "\n") + print("============================") return logs @@ -148,7 +161,7 @@ def get_device_description(): return torch.cuda.get_device_name() -def run_benchmark_grid(grid, n_repeats, num_inference_steps): +def run_benchmark_grid(grid, n_repeats, num_inference_steps, csv_fpath): """ * grid : dict like { @@ -159,13 +172,13 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): * n_repeats: nb datapoints for inference latency benchmark """ - csv_fpath = pathlib.Path(__file__).parent.parent / "benchmark_tmp.csv" # create benchmark.csv if not exists if not os.path.isfile(csv_fpath): header = [ "device", "precision", "autocast", + "xformers" "runtime", "n_samples", "latency", @@ -179,45 +192,44 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): with open(csv_fpath, "a") as f: writer = csv.writer(f) device_desc = get_device_description() - for n_samples in grid["n_samples"]: - for precision in grid["precision"]: - use_autocast = False - if precision == "half": - for autocast in grid["autocast"]: - if autocast == "yes": - use_autocast = True - for backend in grid["backend"]: - try: - new_log = run_benchmark( - n_repeats=n_repeats, - n_samples=n_samples, - precision=precision, - use_autocast=use_autocast, - backend=backend, - num_inference_steps=num_inference_steps, - ) - except Exception as e: - if "CUDA out of memory" in str( - e - ) or "Failed to allocate memory" in str(e): - print(str(e)) - torch.cuda.empty_cache() - new_log = {"latency": -1.00, "memory": -1.00} - else: - raise e - - latency = new_log["latency"] - memory = new_log["memory"] - new_row = [ - device_desc, - precision, - autocast, - backend, - n_samples, - latency, - memory, - ] - writer.writerow(new_row) + for trial in itertools.product(*grid.values()): + + n_samples, precision, use_autocast, xformers, backend = trial + use_autocast = make_bool(use_autocast) + xformers = make_bool(xformers) + + try: + new_log = run_benchmark( + n_repeats=n_repeats, + n_samples=n_samples, + precision=precision, + use_autocast=use_autocast, + xformers=xformers, + backend=backend, + num_inference_steps=num_inference_steps, + ) + except Exception as e: + if "CUDA out of memory" in str( + e + ) or "Failed to allocate memory" in str(e): + print(str(e)) + torch.cuda.empty_cache() + new_log = {"latency": -1.00, "memory": -1.00} + else: + raise e + + latency = new_log["latency"] + memory = new_log["memory"] + new_row = [ + device_desc, + precision, + use_autocast, + backend, + n_samples, + latency, + memory, + ] + writer.writerow(new_row) if __name__ == "__main__": @@ -249,6 +261,20 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): help="If 'yes', will perform additional runs with autocast activated for half precision inferences", ) + parser.add_argument( + "--xformers", + default="yes", + type=str, + help="If 'yes', will use xformers flash attention", + ) + + parser.add_argument( + "--output_file", + default="results.py", + type=str, + help="Path to output csv file to write", + ) + args = parser.parse_args() grid = { @@ -257,10 +283,11 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps): # Remove autocast won't help. Ref: # https://github.com/CompVis/stable-diffusion/issues/307 "precision": ("single",) if device.type == "cpu" else ("single", "half"), - "autocast": ("no",) if args.autocast == "no" else ("yes", "no"), + "autocast": args.autocast.split(","), + "xformers": args.xformers.split(","), # Only use onnx for cpu, until issues are fixed by upstreams. Ref: # https://github.com/huggingface/diffusers/issues/489#issuecomment-1261577250 # https://github.com/huggingface/diffusers/pull/440 "backend": ("pytorch", "onnx") if device.type == "cpu" else ("pytorch",), } - run_benchmark_grid(grid, n_repeats=args.repeats, num_inference_steps=args.steps) + run_benchmark_grid(grid, n_repeats=args.repeats, num_inference_steps=args.steps, csv_fpath=args.output_file) \ No newline at end of file From df833345674409215c280ea6d74b92f4bdb7a7df Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 12 Jan 2023 11:09:45 +0000 Subject: [PATCH 18/27] Update benchmark.py --- scripts/benchmark.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/benchmark.py b/scripts/benchmark.py index f7ce04c..eef4818 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -224,6 +224,7 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps, csv_fpath): device_desc, precision, use_autocast, + xformers, backend, n_samples, latency, @@ -290,4 +291,4 @@ def run_benchmark_grid(grid, n_repeats, num_inference_steps, csv_fpath): # https://github.com/huggingface/diffusers/pull/440 "backend": ("pytorch", "onnx") if device.type == "cpu" else ("pytorch",), } - run_benchmark_grid(grid, n_repeats=args.repeats, num_inference_steps=args.steps, csv_fpath=args.output_file) \ No newline at end of file + run_benchmark_grid(grid, n_repeats=args.repeats, num_inference_steps=args.steps, csv_fpath=args.output_file) From 3b29e490d70e4a4e617bc080ea9fea62da16b3b5 Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 12 Jan 2023 11:14:45 +0000 Subject: [PATCH 19/27] Update benchmark.csv --- benchmark.csv | 99 +++++++++++++++++++++------------------------------ 1 file changed, 41 insertions(+), 58 deletions(-) diff --git a/benchmark.csv b/benchmark.csv index 5a5e51d..9402858 100644 --- a/benchmark.csv +++ b/benchmark.csv @@ -1,58 +1,41 @@ -Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz,single,pytorch,1,458.97,0.0 -Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz,single,onnx,1,286.13,0.0 -NVIDIA GeForce RTX 3090,single,pytorch,1,7.96,7.72 -NVIDIA GeForce RTX 3090,half,pytorch,1,4.83,4.54 -NVIDIA GeForce RTX 3090,single,pytorch,2,14.49,11 -NVIDIA GeForce RTX 3090,half,pytorch,2,8.42,8.75 -NVIDIA GeForce RTX 3090,single,pytorch,4,27.94,17.69 -NVIDIA GeForce RTX 3090,half,pytorch,4,15.87,15.36 -NVIDIA GeForce RTX 3090,single,pytorch,8,-1.0,-1.0 -NVIDIA GeForce RTX 3090,half,pytorch,8,-1.0,-1.0 -NVIDIA RTX A5500,single,pytorch,1,8.55,7.69 -NVIDIA RTX A5500,half,pytorch,1,5.05,4.58 -NVIDIA RTX A5500,single,pytorch,2,15.71,11 -NVIDIA RTX A5500,half,pytorch,2,9.37,8.8 -NVIDIA RTX A5500,single,pytorch,4,30.51,17.69 -NVIDIA RTX A5500,half,pytorch,4,16.97,15.33 -NVIDIA RTX A5500,single,pytorch,8,-1.0,-1.0 -NVIDIA RTX A5500,half,pytorch,8,-1.0,-1.0 -AMD EPYC 7352 24-Core Processor,single,pytorch,1,529.93,0.0 -AMD EPYC 7352 24-Core Processor,single,onnx,1,223.19,0.0 -NVIDIA GeForce RTX 3080,single,pytorch,4,-1.0,-1.0 -NVIDIA GeForce RTX 3080,half,pytorch,4,-1.0,-1.0 -NVIDIA GeForce RTX 3080,single,pytorch,1,-1.0,-1.0 -NVIDIA GeForce RTX 3080,half,pytorch,1,5.59,4.52 -NVIDIA GeForce RTX 3080,single,pytorch,2,-1.0,-1.0 -NVIDIA GeForce RTX 3080,half,pytorch,2,-1.0,-1.0 -NVIDIA A100 80GB PCIe,single,pytorch,1,6.39,7.75 -NVIDIA A100 80GB PCIe,half,pytorch,1,3.74,4.55 -NVIDIA A100 80GB PCIe,single,pytorch,2,11.12,11.05 -NVIDIA A100 80GB PCIe,half,pytorch,2,5.72,8.77 -NVIDIA A100 80GB PCIe,single,pytorch,4,20.18,17.63 -NVIDIA A100 80GB PCIe,half,pytorch,4,10.04,15.34 -NVIDIA A100 80GB PCIe,single,pytorch,8,38.88,30.88 -NVIDIA A100 80GB PCIe,half,pytorch,8,18.68,28.47 -NVIDIA A100 80GB PCIe,single,pytorch,16,76.92,57.46 -NVIDIA A100 80GB PCIe,half,pytorch,16,36.67,54.73 -NVIDIA A100 80GB PCIe,half,pytorch,28,63.88,78.78 -NVIDIA RTX A6000,single,pytorch,1,8.09,7.75 -NVIDIA RTX A6000,half,pytorch,1,5.03,4.53 -NVIDIA RTX A6000,single,pytorch,2,14.86,10.98 -NVIDIA RTX A6000,half,pytorch,2,9.03,8.79 -NVIDIA RTX A6000,single,pytorch,4,27.92,17.62 -NVIDIA RTX A6000,half,pytorch,4,17.0,15.34 -NVIDIA RTX A6000,single,pytorch,8,53.95,30.88 -NVIDIA RTX A6000,half,pytorch,8,32.57,28.51 -NVIDIA RTX A6000,half,pytorch,16,63.16,46.11 -Quadro RTX 8000,single,pytorch,1,12.3,7.71 -Quadro RTX 8000,half,pytorch,1,5.93,4.52 -Quadro RTX 8000,single,pytorch,2,24.42,9.16 -Quadro RTX 8000,half,pytorch,2,10.92,7.02 -Quadro RTX 8000,single,pytorch,4,42.56,15.58 -Quadro RTX 8000,half,pytorch,4,21.24,12.39 -Quadro RTX 8000,single,pytorch,8,76.96,23.11 -Quadro RTX 8000,half,pytorch,8,40.52,20.98 -Quadro RTX 8000,single,pytorch,16,152.55,42.47 -Quadro RTX 8000,half,pytorch,16,80.31,38.18 -Quadro RTX 8000,single,pytorch,32,-1.0,-1.0 -Quadro RTX 8000,half,pytorch,32,-1.0,-1.0 +device,precision,autocast,xformers,runtime,n_samples,latency,memory +NVIDIA A10,half,FALSE,TRUE,pytorch,32,48.79,7.37 +NVIDIA A10,half,FALSE,TRUE,pytorch,16,24.65,19.86 +NVIDIA A10,half,FALSE,TRUE,pytorch,8,12.93,11.05 +NVIDIA A10,half,FALSE,TRUE,pytorch,128,212.94,22.18 +NVIDIA A10,half,FALSE,TRUE,pytorch,4,6.68,6.63 +NVIDIA A10,half,FALSE,TRUE,pytorch,64,108.26,17.54 +NVIDIA A10,half,FALSE,TRUE,pytorch,2,3.65,4.3 +NVIDIA A10,half,FALSE,TRUE,pytorch,1,2.01,3.13 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,128,73.72,22.68 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,64,36.89,12.46 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,32,18.75,7.34 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,16,9.93,19.81 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,8,5.25,11.12 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,2,1.73,4.33 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,4,3.73,6.62 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,1,1.17,3.19 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,128,69.31,22.68 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,64,34.92,13.79 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,32,17.72,7.33 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,16,9.13,19.8 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,8,4.85,11.12 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,4,2.68,6.61 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,2,1.66,4.32 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,1,1.18,3.18 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,32,31.19,7.65 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,16,15.62,20.01 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,128,130.38,34.36 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,64,65.72,23.84 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,8,8.39,11.19 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,4,4.56,6.64 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,2,2.84,4.37 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,1,1.93,3.15 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,64,79.82,13.51 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,32,40.13,7.73 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,16,20.96,10.87 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,8,10.64,10.45 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,4,5.62,6.42 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,2,3.08,4.17 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,1,1.84,3.24 +Tesla V100-SXM2-16GB,half,FALSE,,pytorch,128,-1,-1 From cd13d1aaaeb8d90f452712f6449d4e4fdc740a55 Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 12 Jan 2023 11:15:01 +0000 Subject: [PATCH 20/27] Update benchmark.csv --- benchmark.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark.csv b/benchmark.csv index 9402858..afa36fb 100644 --- a/benchmark.csv +++ b/benchmark.csv @@ -38,4 +38,4 @@ Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,8,10.64,10.45 Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,4,5.62,6.42 Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,2,3.08,4.17 Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,1,1.84,3.24 -Tesla V100-SXM2-16GB,half,FALSE,,pytorch,128,-1,-1 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,128,-1,-1 From d8a942d30fec987c6023f60867303fb60a26484b Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 12 Jan 2023 11:16:28 +0000 Subject: [PATCH 21/27] Update benchmark.csv --- benchmark.csv | 102 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 71 insertions(+), 31 deletions(-) diff --git a/benchmark.csv b/benchmark.csv index afa36fb..aaa55ea 100644 --- a/benchmark.csv +++ b/benchmark.csv @@ -1,41 +1,81 @@ device,precision,autocast,xformers,runtime,n_samples,latency,memory -NVIDIA A10,half,FALSE,TRUE,pytorch,32,48.79,7.37 -NVIDIA A10,half,FALSE,TRUE,pytorch,16,24.65,19.86 -NVIDIA A10,half,FALSE,TRUE,pytorch,8,12.93,11.05 -NVIDIA A10,half,FALSE,TRUE,pytorch,128,212.94,22.18 +NVIDIA A10,half,FALSE,TRUE,pytorch,1,2.01,3.13 +NVIDIA A10,single,FALSE,TRUE,pytorch,1,4.69,6.29 +NVIDIA A10,half,FALSE,TRUE,pytorch,2,3.65,4.3 +NVIDIA A10,single,FALSE,TRUE,pytorch,2,7.75,8.57 NVIDIA A10,half,FALSE,TRUE,pytorch,4,6.68,6.63 +NVIDIA A10,single,FALSE,TRUE,pytorch,4,14.35,11.24 +NVIDIA A10,half,FALSE,TRUE,pytorch,8,12.93,11.05 +NVIDIA A10,single,FALSE,TRUE,pytorch,8,28.28,17.91 +NVIDIA A10,half,FALSE,TRUE,pytorch,16,24.65,19.86 +NVIDIA A10,single,FALSE,TRUE,pytorch,16,57.5,21.21 +NVIDIA A10,half,FALSE,TRUE,pytorch,32,48.79,7.37 +NVIDIA A10,single,FALSE,TRUE,pytorch,32,108.78,15.88 NVIDIA A10,half,FALSE,TRUE,pytorch,64,108.26,17.54 -NVIDIA A10,half,FALSE,TRUE,pytorch,2,3.65,4.3 -NVIDIA A10,half,FALSE,TRUE,pytorch,1,2.01,3.13 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,128,73.72,22.68 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,64,36.89,12.46 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,32,18.75,7.34 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,16,9.93,19.81 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,8,5.25,11.12 +NVIDIA A10,single,FALSE,TRUE,pytorch,64,-1,-1 +NVIDIA A10,half,FALSE,TRUE,pytorch,128,212.94,22.18 +NVIDIA A10,single,FALSE,TRUE,pytorch,128,-1,-1 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,1,1.78,6.1 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,1,1.17,3.19 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,2,3.68,8.03 NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,2,1.73,4.33 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,4,5.56,11.53 NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,4,3.73,6.62 -NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,1,1.17,3.19 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,128,69.31,22.68 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,64,34.92,13.79 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,32,17.72,7.33 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,16,9.13,19.8 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,8,4.85,11.12 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,4,2.68,6.61 -NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,2,1.66,4.32 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,8,10.95,18.12 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,8,5.25,11.12 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,16,21.05,33.04 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,16,9.93,19.81 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,32,41.02,14.41 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,32,18.75,7.34 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,64,80.45,26.17 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,64,36.89,12.46 +NVIDIA A100 80GB PCIe,single,FALSE,TRUE,pytorch,128,161.52,48.01 +NVIDIA A100 80GB PCIe,half,FALSE,TRUE,pytorch,128,73.72,22.68 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,1,1.79,6.11 NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,1,1.18,3.18 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,32,31.19,7.65 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,2,2.97,8.03 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,2,1.66,4.32 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,4,5.35,11.54 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,4,2.68,6.61 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,8,10.16,18.11 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,8,4.85,11.12 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,16,9.13,19.8 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,16,19.71,33.25 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,32,17.72,7.33 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,32,39.03,14.39 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,64,34.92,13.79 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,64,77.05,26.34 +NVIDIA A100-SXM4-40GB,half,FALSE,TRUE,pytorch,128,69.31,22.68 +NVIDIA A100-SXM4-40GB,single,FALSE,TRUE,pytorch,128,-1,-1 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,1,3.61,6.35 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,1,1.93,3.15 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,2,5.57,7.73 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,2,2.84,4.37 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,4,9.67,10.7 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,4,4.56,6.64 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,8,18.96,16.87 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,8,8.39,11.19 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,16,37.89,28.82 NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,16,15.62,20.01 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,128,130.38,34.36 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,32,71.57,14.26 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,32,31.19,7.65 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,64,143.26,26.42 NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,64,65.72,23.84 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,8,8.39,11.19 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,4,4.56,6.64 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,2,2.84,4.37 -NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,1,1.93,3.15 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,64,79.82,13.51 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,32,40.13,7.73 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,16,20.96,10.87 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,8,10.64,10.45 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,4,5.62,6.42 -Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,2,3.08,4.17 +NVIDIA RTX A6000,single,FALSE,TRUE,pytorch,128,287.96,47.92 +NVIDIA RTX A6000,half,FALSE,TRUE,pytorch,128,130.38,34.36 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,1,4.42,5.7 Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,1,1.84,3.24 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,2,8.33,8.6 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,2,3.08,4.17 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,4,16.56,11.86 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,4,5.62,6.42 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,8,28.71,15.88 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,8,10.64,10.45 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,16,20.96,10.87 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,16,-1,-1 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,32,40.13,7.73 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,32,110.17,15.72 +Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,64,79.82,13.51 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,64,-1,-1 +Tesla V100-SXM2-16GB,single,FALSE,TRUE,pytorch,128,-1,-1 Tesla V100-SXM2-16GB,half,FALSE,TRUE,pytorch,128,-1,-1 From 0703adbd394a4bce01ac7b9ca19e992c1d1e59cb Mon Sep 17 00:00:00 2001 From: Justin <605492+justinpinkney@users.noreply.github.com> Date: Thu, 19 Jan 2023 09:15:52 +0000 Subject: [PATCH 22/27] update readmes --- README.md | 26 +++++++++----------------- docs/benchmark-update.md | 23 +++++++++++++++++++++++ docs/benchmark.md | 14 ++++++++------ docs/pictures/sd_throughput.png | Bin 0 -> 34640 bytes 4 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 docs/benchmark-update.md create mode 100644 docs/pictures/sd_throughput.png diff --git a/README.md b/README.md index e4aa00f..22b85b2 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ import torch from diffusers import StableDiffusionPipeline from torch import autocast -pipe = StableDiffusionPipeline.from_pretrained("lambdalabs/sd-pokemon-diffusers", torch_dtype=torch.float16) +pipe = StableDiffusionPipeline.from_pretrained("lambdalabs/sd-pokemon-diffusers", torch_dtype=torch.float16) pipe = pipe.to("cuda") prompt = "Yoda" @@ -113,29 +113,21 @@ for idx, im in enumerate(images): ## Benchmarking inference -Detailed benchmark documentation can be found [here](./docs/benchmark.md). - -### Setup - -Before running the benchmark, make sure you have completed the repository [installation steps](#installation). - -You will then need to set the huggingface access token: -1. Create a user account on HuggingFace and generate an access token. -2. Set your huggingface access token as the `ACCESS_TOKEN` environment variable: -``` -export ACCESS_TOKEN= -``` +We have updated the original benchmark using xformers and a newer version of Diffusers, see the [new results here](./docs/benchmark-update.md) (original results can still be found [here](./docs/benchmark.md)). ### Usage -Launch the benchmark script to append benchmark results to the existing [benchmark.csv](./benchmark.csv) results file: -``` -python ./scripts/benchmark.py +Ensure that [NVIDIA container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) is installed on your system and then run the following: + +```bash +git clone https://github.com/LambdaLabsML/lambda-diffusers.git +cd lambda-diffusers/scripts +make bench ``` ### Results -Stable Diffusion Text2Image Latency (seconds) +![](./docs/pictures/sd_throughput.png) ## Links diff --git a/docs/benchmark-update.md b/docs/benchmark-update.md new file mode 100644 index 0000000..9ef98a6 --- /dev/null +++ b/docs/benchmark-update.md @@ -0,0 +1,23 @@ +# Benchmark update + +We are currently running benchmarks to update our Stable Diffusion numbers using a more recent version of Diffusers and to take advantage of xformers. THe interim results on a limited set of GPUs are presented here. + +## Running the benchmark + +Ensure that [NVIDIA container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) is installed on your system and then run the following: + +```bash +git clone https://github.com/LambdaLabsML/lambda-diffusers.git +cd lambda-diffusers/scripts +make bench +``` + +Results will be written to `results.csv`, the benchmark will take different amounts of time depending on the GPU present but expect it to take at least several minutes. + +## Results + +The current results for the benchmark are available in [`benchmark.csv`](../benchmark.csv). These results were run with Diffusers 0.11.0 and xformers using Ubuntu 20.04, Python 3.8, PyTorch 1.13, CUDA 11.8 ([NGC PyTorch container 22.11](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-22-11.html)). + +xformers provides a significant boost in performance and memory consumption allowing large batch sizes to maximise utilisation of GPUs. Our best performance comes using NVIDIA A100-SXM4-40GB on [Lambda GPU cloud](https://cloud.lambdalabs.com), at the maximum batch size tested (128) at half precision we observe a throughput of 1.85 images/second when using DDIM 30 steps for sampling. + +![](./pictures/sd_throughput.png) \ No newline at end of file diff --git a/docs/benchmark.md b/docs/benchmark.md index 4109382..f16ea47 100644 --- a/docs/benchmark.md +++ b/docs/benchmark.md @@ -1,5 +1,7 @@ # Benchmarking Diffuser Models +__We are currently in the process of updating our Stable Diffusion benchmark using more recent version of Diffusers and taking advantage of xformers. See the summary of interim result [here](./benchmark-update.md)__ + We present a benchmark of [Stable Diffusion](https://huggingface.co/CompVis/stable-diffusion) model inference. This text2image model uses a text prompt as input and outputs an image of resolution `512x512`. Our experiments analyze inference performance in terms of speed, memory consumption, throughput, and quality of the output images. We look at how different choices in hardware (GPU model, GPU vs CPU) and software (single vs half precision, pytorch vs onnxruntime) affect inference performance. @@ -27,10 +29,10 @@ We run these same inference jobs CPU devices to put in perspective the inference We note that: -* GPUs are significantly faster -- by one or two orders of magnitudes depending on the precisions. +* GPUs are significantly faster -- by one or two orders of magnitudes depending on the precisions. * `onnxruntime` can reduce the latency for CPU by about `40%` to `50%`, depending on the type of CPUs. -ONNX currently does not have [stable support](https://github.com/huggingface/diffusers/issues/489) for Huggingface diffusers. +ONNX currently does not have [stable support](https://github.com/huggingface/diffusers/issues/489) for Huggingface diffusers. We will investigate `onnxruntime-gpu` in future benchmarks. @@ -62,10 +64,10 @@ We run a series of throughput experiment in pytorch with half-precision and usin We note: * Once again, A100 80GB is the top performer and has the highest throughput. -* The gap between A100 80GB and other cards in terms of throughput can be explained by the larger maximum batch size that can be used on this card. +* The gap between A100 80GB and other cards in terms of throughput can be explained by the larger maximum batch size that can be used on this card. -As a concrete example, the chart below shows how A100 80GB's throughput increases by `64%` when we changed the batch size from 1 to 28 (the largest without causing an out of memory error). It is also interesting to see that the increase is not linear and flattens out when batch size reaches a certain value, at which point the tensor cores on the GPU are saturated and any new data in the GPU memory will have to be queued up before getting their own computing resources. +As a concrete example, the chart below shows how A100 80GB's throughput increases by `64%` when we changed the batch size from 1 to 28 (the largest without causing an out of memory error). It is also interesting to see that the increase is not linear and flattens out when batch size reaches a certain value, at which point the tensor cores on the GPU are saturated and any new data in the GPU memory will have to be queued up before getting their own computing resources. Stable Diffusion Text2Image Batch size vs Throughput (images/minute) @@ -76,7 +78,7 @@ We are curious about whether half-precision introduces degradations to the quali ![Evolution of precision v degradation across 100 steps](./pictures/benchmark_sd_precision_history.gif) -Our observation is that there are indeed visible differences between the single-precision output and the half-precision output, especially in the early steps. The differences often decrease with the number of steps, but might not always vanish. +Our observation is that there are indeed visible differences between the single-precision output and the half-precision output, especially in the early steps. The differences often decrease with the number of steps, but might not always vanish. Interestingly, such a difference may not imply artifacts in half-precision's outputs. For example, in step 70, the picture below shows half-precision didn't produce the artifact in the single-precision output (an extra front leg): @@ -162,7 +164,7 @@ sudo docker run --rm --gpus all nvidia/cuda:11.2.1-base-ubuntu20.04 nvidia-smi 3. Build the benchmark docker image ``` -docker build -t benchmark -f ./benchmarking/Dockerfile . +docker build -t benchmark -f ./benchmarking/Dockerfile . ``` #### Running the benchmark diff --git a/docs/pictures/sd_throughput.png b/docs/pictures/sd_throughput.png new file mode 100644 index 0000000000000000000000000000000000000000..06e0b1543f030b0ff6504acf3b9dab2e3bb9a1cd GIT binary patch literal 34640 zcmeFZXH=72*Di_`%L6E&C|zlS0xANMP(+bV=pZ#p5$RnzD4_J-yAmMMrMD229;y%^ z(t`97A+!JqCHuzb+uwfo!Tsy}+2f4E55^7SW@WB9=ep)K%OXS#B1d(J@e&0E1(kxl zj0Oe88Ey)SQ(G6#1HTzIxEMr1@s2`4Mq10=`1d3wf~l=aY8^3mO7L5NAMJ%(f%H#L zPj47Mz0~;O$M=_^`45t*Z#`k(e#e`)YZbaYEb{aG_>EaCSY)kncic-;jO-wp_vh&X%m4Qu;%;j| zp@NjsJRjYU_nb7x|DbNQdb}vK2%q{j(W^81)^@4ip%Qi9n}fZLZLAkQzo|uk?S6cG z{Fi>xdJ9drx+EUCU!t!%nk?ZZB5}BlcG;bDL({2>OULo3CThp$DkTke3pOe5PB=&L zl{OuL_@PKc9qYL2)@R7hDe4uqDmHFzIt{->dAdzFQrb?`KFGB*px@l(m8!UhFm@04sgCZ% z7`nq~W$bO{Dp@|nvEUEH^iGrAhK-$k1xnnAH*G4-Q@vxmd7zX&s?sf?(sDLuY6HYy zexsQ3jJLsgxVCP36dN^+h?XjMo9Zu=mp>fdNZP7D+!?q0?tiY_Q~yJ~VTK--mX3Ea zsUW4Dq2OyGIBmDMxHxxztwGiG2N;%Q?5R*(c74bQPALUh*m0uzz!FU9$-SOd) z#I<6Myn#|Suip=BjVJ99A>sYvAfGRIEGhso|BRN+RJ(hbz4U$6H^gNRgH}gb!M1q;gVI z8HIZ(*}Ok}GuTpenh58VN z=V}KBHHIw*f^HG*?IsX|{Bl3mU2!A%Y}|sEvkHVP`k0}OHc4q<4R7~&+y;UuftWi8 z_=syl4=3zVcH%o&EL0$cP|-(^zM%DMCCR_sVc+0SH_A6bKC=;`v2sR_uy?;ropGbb zBeo#Jyo)fp-rinbg3Sm|VNp@e?vx+2H)<-*Z*EfpHt@yj9-Gg$dR0;oIEzCra@)4G zHs+V?2h$H7qskq)cS!?z)3JL(TZ_}njkRTq(^$OMXt}x74K`4JYh_Q$%=gzuE6d7d zmimz{{)tMnmSS(+4}!09#I}G<7!OlTW602QGX*DR1B81Sqol*HCsUOodv49>b?--q z87qO>*ZI?`6{}r6-3@#TM_U8Dr>cF)(%W9iV=AxFNOw%B;UbnGu)LA?Q?&+?+zT@I zuBTM(z<r$VV!sSoq5gaSxWx`7Pv# zUs`B-pAvPAo<+|B7`>G^Rk!LTzdCyUzA?l&^222Yl4MPitwerfH;?0Z4;qs4@Ok8B znchMWtEW8G?%MsL!a~iKTBDbFA}LJ`_Y*Ha1ne6qnn$uXLco75y%I#M`-58dP&`>* zrnR-TUC4*K`+4&%-_qN|I?_y_G)cJD zw;6fh$$+@?Dl}-Dk(zYw@t-r1Nk!JqU4^YU#cI6g;(IqDqI7;g@2(R_P;BCL#;C7_ zXYE0sEtW&xtNK)U+%1V>-+uOLLe7prR!$VB!|87*Ngl@u$r8gl4ISI9ht3bbxr!;6 z0p|EnW*Dvaork+$iY#tBTK;@>60=C~Pz@U(>`ge}^KS;6r&5IUXDA4O*gewIjbmF} zXIr*@d2ATpk-W!)GjEtsl_cgAbZpI8j@5f_x`IsG!_^7yXYgEbOsU5+6xHrfzUHv? z(ZJ@pE%9){ON*}%7Mf_5TSqZlnIcCJ7kGH7<$w)_2mgEygIEj@Ek`gYWz`GWP1Kr6 zG)fyadRC2HerS&sC#3EgyKlUD!CF#!vn(T0wRdJ3ab&aHC~V(INW@p(n&h3{9jc|K znRQJM>3!Hu=(NG)W{%LOiF9A(d^3vJZjahkwq$t_;ajXa8Vkp4SR3z7+>Akw4a%A3 zsiYD}VHbUeuLT$eFt|ko-g2n7ka1&c&OCVT1)$ny1 zfgg?%seW9x*x!pw1doXKFbP#}?{6MFR#3no(~K>I?!Bq)1yvmOZ6oI0?6z2?$113z z=N2Iy)vUPAdDHYC8Ec}OV~=jk2#fwdhTbl)eHmQ5jgFP_5gg1aEM{hYbPI3XWSSSy~3prqMa zW5F=UZ_3W5*&`J!m4(+FHhC{i{92(3>vgd~=cyDJiv)coWMsI5uxYCjTu-xLU0x24 zjtolR>>}OwFdP*|NuK(eHe>hXqCc5$%@Ei3lrtWoUNhpY*RE_%k#0k<6dTr9Q$gJ8 z09E+RT=3y+$Z_q?$CrK!;=DoH$VFb6#<=ZB8Jt8;* zNSv*W2iOD@sl2LwCF6;ch0$z-7;0XqvG4VZ9}a1*ulF;SJ-YD|3ljd77EJ7@{)|Xl ziIJG@4)=~zs@-6S`+m1AE!*(?D=f!{*wu&5zn#*$Luy1FA621V@iXM;u7`vi+@5zK zRqbZ$wvP(XEVgT-schB!*-_IIpXV{yJ}&%l9HHFE?r7kRCvmUQ>|ezXM10xxNlBMn za$b6c{iqA+kaG8VZ>R=%Jp70?Ak>Y97n(KG=yjRx;e1~hLsnYf>|=!=HhHE9q&vb= zFu9dVjO}RN(nFAU_E{I{(0@nPu_XoYZ=9oXHBN&@s4cJ8>Fh;)5kVhG0ekt%$mI6@ zRB+XSXx8PvJwM-K`_+5!-t+ig47%Guh4QbOmCpJOHmtCPDwm=M2+C!pIMlIs2aHK6 z2vi)$1v4gta!vk43nf2E{Qio_5LgP0v-xj5K+UX9lPZ1sL%WWS%Sl8bh|EZ&24X1t=^Y(4TL(+_OLif zx^yjiba__eH2tEa+Zx;qXB*!iV8t^C{itdl?<#UwL4;tkp-{6Zwj*RQx zn;aOe^v^dwf#7c?!f)ipS*FZ;n*En56D`I3&+?}wA=_KLTnaeyHjpD;GDLcYJXOp9 z<_gNPVtVpI*JZwdg*00OEj@PmR&*hnY=sb-u|~4E1sLp zzNIes7)zgSOQ)*_A}%H~wo?RkF#bTfRHa3E{5e1R7!C$|4Z62kHRNp1JVKXSRue#; z#KD1!(W1*q%H2J<3_5v9Q0J;=w6d*Jv^PJ)*}G${fkIlWYZ8IQs@FDIV=+N@8@;3v zyHz9G#4_wNH0erH? zA<gde6&qwF)!jjwgr%NbB93^}!E{&6TU7Z>Ld=-x6wsi1xf~SW2)v4t*&L#kpQl?9#X|{Nog_ zD{OlH1yz!rHg>86E3#=MhDKHPn07>Jmwj7p62B}X^k1jCG9(1K7b$4d49H()!<$Kc?T=a5iCjdG;{pk zBG0i}-QG=m1#G>7N;W-Q%9aCw6d&J8b*q%;$QvdXrPH$aHj|NuMO-;+wtF#n%i7p4 z9L(q`X`HwG$QUX<;SzCiD*pp+qdjC-W7AE<=I4Fko_#ebmMm{LBbME1z^!-y&X8+b z(IdU_vO$0-%68inBf~ zfu9;SJVvXvrO|mzc0%{Y-J{1y{|9|9@lUNrfdvrM1aX2oJ(2Yfu!j9Cf8esDCd|^r zQ2NZ60js(G2#s@Tv8f3Y!S(EbYZU%>su^J zTko*5*89~qDGF?UkV@{CnW`|zQYu9eQJCr$mkx0w07Nb7@i9@}?z>jLq-8h~WLR7F z%JUftbKN~95AE)=v93&YZT9CSlA*XVG`PoIH6L;L0)yn#sMpokSJKR>Ln+5y^Mle% z(67b(J4xm1(_1d8j;gv3RpQpFAUdwoVb17b71180snpor@(p!nfdf&RS;u>CSeKCu zqdMnQ((Gz`zq;Vl1Xwx8@luo9#>*=waKK4?37vu9LaYCCOc4}n#93GjXxUzku)HZ0Vh;M|5W;D@7h-!w*eAWL^EUMJJe>^X1lVRRx38+&Ps2Qy z`%GRgFRV5mx~RPpv30u9eJ-gv#YH3`J){WggpxLYN z@y!7S^yc}jsN0>IKb6szKn!a{ofo?xx`cp7fLRee;>Du81A8Xk#!`ksO@5M$Ei`@) zfgHhQ<7I__t?989mWW=L{T96i1o~C&?}MyTT}p{=IdqSY!czq3RgW#fsy`K)y1ZDp z#NoQU@CvPyn(H;zm;hQn|vCQ|4Fn-Shwh+q?C$AeNZ z@+}o^|2mv}qc5|?dK&oyHyL?$B0Kg{T7*~Kf@TO}!;)J7-2m}w-zWFs_ce$4g> zWzF_@?Tn9w2n167Y7L?D!KBV9$(8mSPCHldsHAdIGE_YcR(W@yediQK^M}^6e`;$_ zgZ?jjSd=j-_f`r=rZT91Ab)g_Nfi9tUiz`1+3yT}s(UYUsJ*ACx<2{5LtAX9_9HXG z3++AocTaE@bSi#4>cHb|%^x8sOd)J&w(2}+ZMr_bxy7A%PHyY>O)XzNQ9fdKmc}Ij z8Yo_cB}L^e4V~eAxFV(b=Qkg$+7ms7Y=5e3cOVyY=vmumDdKZs!K|QnOCQPd{Nmvq zr|3icRg`6WqJC^d<#2Oin`dhyi`mF~9oye2**d>l?UkE%FYPvwC7#3bQ4n!f_%mv; zz=ghy!WGMdnwo=cxKyrS)4`ySd3Ge`+xs)aU!?=i=l+xQa2P04Xm#`Q>y-yaf>!R3 zM*Dqbc`{sRdsEPkUZG5K-qKt=%ri=gvAM3yn6hELrXb~6gig^5X^V8n^Q#Sbq|45z z1v*vOI(Alh>xPI;vOXnZLW)f6x16YTWn>7_6{47#04f0 zP%l}+G#v>~z8$x%^gSfSZ#YdZDtd42)8A|i5ad-z9C0-4xGpGaGQ)-a=CiA znbeeXhWhanAF`{ftJTD?E>r~w*DCo^9-C$>*v1CZzMvoRawAaY;+-W5(9Mk*<~g%E}^ItxGu_2dLnChC#ToUxI;6;l&0uq>n;t zXCrS4ahp#7XJ+_O&ps?p>YE^P@9DYfnt?>ulG>R|+9in1uJ~zXYWN!#!UInov{-#(b`;pLD zr<0OQ`QErkf2vQB)RZH?F0U$iE5w2&pN2lXeffAhhQUT+DjptU5}TbILqJJ6ep-1% zxGgc>&I9X-H#6l8c5{jg2hprc9&<&>R9?#>GDY<8`+yFN#u~zaP8VnKQJ5GT?egK+SRb3d6qeL? ziKcI`Uc31X1ND<2td8p*X5@c=J@Ll5y#V!Ouh-u9nL)M9=fmA8Xd`uOKGxoE-+%-p z;Af`NcBvg^``k+jWgV<{ttwS|g`)QUU3sZ!>RFznanoL#U@TB*^u?mH%~R!mV0(Zn zOS-WyaemIat_LV|RZjWt=l+8>GcwMD9P#CPox~xB# z^1wF<>MJ%pGQ!6)L%v)>uL5L;rG*FQASlwuRk2*|UX zMu7C&49@$jH9SH}`1QoZ>!cR8qff~D?NWUK)F65DdaUQBeW{D<<61Ha(^Sv|oE?*d zjq@n2(wrQbL$+<~#H%4a3G&y+UTYWT8M3C8o(x_qv4&On(xkL|Y_Kxg{i>xV<0o5U zEm@_zIXrOd+Y=5ROoD>;Mv!RtQd+^Zb|5u>RKbq**#12lcU{o9DDv#ad0r!n+Xe#) zP1{`T%a<@!?{5&I;%Zx(;ny8_Zci>>^xGew8e)}SOLhl~A`HFHuDz#ZRVyX>VL9$3 zCDBEELRa|b6s9c;q3Wf}iM?ip-O)Jji^p2Ct-aFVghVL&khaymU|f2-N(=_ZDTzUJ zi9oNx*tHKLHczkL@YdGJFfZ8>SNpaO&v5idNqQIbn^MNC*3ND%D|%bSOgQ5+Fb_JI zVeMPuwG}=PFZxh~;16_! z8h0T_y^C*-=6Iww!fnB6=vtTm1|Wtkn(oDSn+F~oza*qY(BgBO>()m8AD1_QBEMJO zSi3<`zutT!6l<;QKI+~Q8?xI-Bf0l$uKo7)u>5DgSiY}35-`%ojs573xIq=EuA{F0 z8Pw#xatbpW*?BmS|5on?11JZ!vmzstL|I#d*E{#iEZzKh;;U>4u|6<}pA=JrXj zZZ3ANR`~&X#BtTcnK4PgQ1r4iPE^yt=leN^FEC#3t_1Ph*B=SCZz+ljXx_7uM!(j_ zq_iv4*>xZum;FLls`%&i)0dVbcWbUaQcjAr`WIa6`p4NG0Qx~dY1twdUdFco9jy%U zrWo?>>mQp+)U;YbyEh!pj6Y`s^1?XK<$@A`RzRS^4vGRBol62V{kV7l+~uD3B>d=J7wa(2yG zItV+sD4zpMX3mJbx2<`VSyGd0ggyo02Ywf3T=&<=>r6;uiM&&t%7B~Lse~hRXTg=i=b#Ivp3IAlK$2Q!)Z?yQ4 z$xe;owg=UX`|s=!8}0G0stI#m6#!{8Sk3qq`8!TkQUPGFQf3JvmU@q}6eFd6CI#*( zTC@7o@EBxW1lr7e$*X**<} z*<5Fgl^${AyZ69nq(h9y;&(4Q1_8q_*d*1`3-xDI4O$D~HQX%Y#Mmo-qmbdMTT)q4)JcO>G`DfD zNy;pTX{eEda`SCCa*-5!MX#0`1FYuvxlJH$%RF7ieX$T#pZ9Z6xx2;9dZuyqAY;=g z90B(*4^63#v`!L62iqM~OI?ilfOD9<*GcGpST&584FNBu*P5*yY_j@DrfL`&snkq3 zDgD}ivuvV%IaLH*-}ea8j)!EAg4AI;*k*WSK);tW|r#*&Eqpz#q?Cy$$Mmx#9?8B?z@cP*+^ z%1wexiF8-hfu!QoJpP|Qyo4miJ@Iv&jD0qq=dlD{Fwq10j6(nxzB*52qKDj7pEXu+cc5Bw)0XKPp+4uuI8#8>m?UqWumY&_X0_j2PH! zyM3L;lLwUqRj}EKyMx{POI~<#X;K(|qQ!5E)d%muJGstYUa~CYI%l89Z=5lONeTuS zoDHhK{}R_*;ktX__BoC{4?6Zh4&^1h)ych^>wWYPjXm%@nAJm7srL`4*g+>2Rb|Yk zL3**cBy+36rX!Ly=xA?t*dl)8R|W&mO$7Dc(q(A(m2FA=`WHj~dA*e-LJ@IJlaY?h zT~jd%Y8lEKUCnkKApP&$+`lXI_=o0s$pmg76O;CR`!j`kvyw~=S<3I}aW?oQ=FU=U;IK&ha-qjnPg9!; zKA>6@a1e?aQJd9$mcJH}q&?l_apTGNU@Z-AbOXJ?h9Hn+vYuC4veI99)45W%Jvc%0 z?<=7nM|NyTV3`0sg#IWk=oEd7zpC<|y!zALtp}%$pWglWzxKg(tktY5o_D)p>M#py(=SLMd-n~fk3E4L%^u- zm)Q7u`T4c|N`VOy>c_t*)X)6;*5wd|LSQst07$Fl#9oYgEN1Z1hJ0yCOHF;#!Qw_Q z{O7GtjnT=Ko&f!}T>A0Z>FZ_&-kXQ$1|-}7;~&o~`&Z1XARm+Ceq{Z8qQTs+93aPy z(AU==n(}T9jQW&QVTtAjGUn@-{^ysX`n9#i1${U~d5^y2Zb|J^F6L!sV4R`yRm*vT zC}zr!eE6K|-OB@x^POiOoEEvl^V0vuDLP$~9AI1C4Zk!YV$Y5CGEoE!RJGBQkX>I7 zS{be2AuJ6%(>ZlvPLYFRS~~n4RqMrMcG+*O2{)E2Lr{|Yzn@K!Mrt%d7Y>hyJ}Q9; zolZ%tb^33Ab@53_-Qa~M?pHWoo^d?Q9enk^BbRJ+GR0i*-3W?6%KsGY zY{vJU=H0O5 z&0YE(cU)A`Mp1HdQ-}@b$x?u>waO&b{L82i<-Q@~ThT7I^sN4h16tHQq{fqJ;{yg`# z+Q_?UQrUZXZs45Ok*23*+B9zs^<0G8t{Y=-eTcd)({!ZNk$`H-Udn;Kl@AFYpTt~W zfX$turF+LLZE+gd>JZIh2{B^gzF?~jzeX!Tfu2{>`{g1iv#bs3`U+-s{*D)jVnq2U(V?fB)wBpN^i zPG>V9_Zl|kI#shcaBkW0I86ru=XAV~Ny%byc z{PsuNo570Z351Ez~shRyI!ja2zw#jelOr5`DyjA6Qri0;KSi~Ef$*`k{?ecMNmiJ2smk(JYQsnkPLKCCAu8AP$ zn>7vgELC;uyeymGPBp#`mfuW?8VebV`&_&^8N|gH9b^=%kLNpkgFn0oC>8pS zN-eF>knFaV?p+UgYNhn){w>*WIVulmqtt8& zu;TGT7HzMzKjz9&iFhK=YH$bSA>|hYNqRsohIClgn&<+vMF0&t{J1NVXWxn$)xvmTne^F}3Cvj=}UE{oSKcP77=b+ynW_rxR8wWz> zHj%;ksSEpSd-r{%-|+UkANkr4IGjSWHSgPAq`!B3dhW{J*7g9moIW;PW#QGOCx~6W zw+m(=eUJUKFMIBRzd_j+@pqg%{I++H9`xRpD&OW7gCWESvQWPyYHAtk{-Fuo|NJef zu2KYxjPyHn^6QWqd2#=N#?p+o=AC9o9whqbjP(#}qe;-e=e3rW7t5<_% zP!{y#>z>)LiLv*QeaqQ9uBFp+DRLz6(U#!0+dM;n#4qlMq<27!2G%zr=&Du61p1YPzZ{%P(bEi4}5TH%_$iQ2g>T;Z~nIQxAeH!q} zFR*`@rn23a)k1aqIjs!S-0gjzOjb_q=cy(-O5I7vT?F0K6`{W(@ZaG~+T`>P)?R}< z#^9)#c@8>w%DOXS;)MKw2ZP#hZR_*VmEtPW4sknbk1Y0>*ML>|AON`=Kb`tRRkd&Q#Pfv{6o%y_4&rfgmSC#)>Jx- zycQ&9Z$x!CpvmMeet(z11m}dfrM}#Vx3o|B3a?)aC?%^gIBpTxy$5y@eJjnzaAf4Z zMt~tLMcauDNeA1rEaA7w4eK%ILr1z5szXLNS--Z+v5NS~msRy^*bp=5=K}+x)RYg| z2t%*MrosWtrR$GMMw^cpn}{MZYwyxeUF@DY?V!te>H>|)SsV6$LqtjI1zNg07h)9l z_u|f|hV(TBn-sFaeh#J?kdcpL9F(!5z33h^{o&9`iX0cKTFsvQc;@r(s;LW_9ia8w z|Fv4HF#?&%2y`B*1f^66K2xy7=Ue6p{~fi2WoN2{wRT7DYPpURoV0*w_oN{vRF&j=1J>v^YM&nn4< zj9b0<44LKAvb8+>$yqu)xy{<@%Ws4&ldRr~l(!N@0| zxvkf(x&=!^WCG8vQ(V=gt71X^Nv<3e8Pq1N;i}`YsNkCTOi%jfqDAnf1(oLp3*mcR zqD9e)X7f%~#MjpqgUzMMQQj?To4TnM5E#&#y6&QPFs6ijm7+K~UP>Ap_kLn>n%Lsj zHU@f^J(aEyGeEB5-$-7k3+-_pHS?Fms>|xPRANd@7Uj$T=SbiC@#UlpIm*|0I~im z;YrJIR5dq$K!)#m`CDAv69e;RG9nKR86^+ZbObMzt?*4@{g82S$`pGLRo;u=zV`cM zkn1G{NsOy2`*ypw>3k)K9~jHK67v_PK!QUWo|{*Z^NanQQapZd>m=P-P=t2eL-Wb% z66?AnV)I*~L|Z{M%Prf3P3I{m&&$wcz2BGe`QJAO0uE$j%4w{tlxswe{nvw*9&cPv zP?lNDghdA1fVHhvUExK2JMkMfOz+b}D!)+Y{r=$rh7C~R=CpKXRDcmF^B=?o6*}4d zog<9jL1Zb1!B);=!s0+C65{wHU#fiL-gdLxUH7^;uV(Vt@UB?lTJ3iXaS_Jhl(C^s zUuQ>r6Lvto_eEK8(GT~U=z2ZxML1sxe%c_Y{*ekJ5Bv`396IsI_ow0S6bwvqEVmu_ z#EyQM{fW?@CTFU)c&mSpjGQ$qwMBI<;Wf6?O6Ub|=9KU+hmQ?jn0sord>d*3N!;wN zCxY51^mg7J5nXPI8Qo$)LZrFxrw?`Z>uvq?$-nr-+KCfPPM1OTNkJ`cfyv(W>B>WU z^${+YxMVLG6_xuJ;2Zeo_vg*xMN>0Q{TCk|xnY?p5x`f1d{NbKZ0)hU+;kJ1m!?bm zt$etZ%07SFh$Na3WiUsd0Wn~DzZ0sh{RJHO$eR>XzgLU!(uKksVVAPi zOlCngl3jg_H@PUh$09d|vYu}pW{^{@>KN0n=!Dnu)thVHzGV~f-dz*MY*hJQ=YOYN z9`V_jy6Yk*_e()mF5jn~F4%MQH!IN9fo2CZyw!7f`cgaS4~DcIk<;80@-m6{a@s$i z8Ag9Cv^!)<$nfzO^!UnK)tE)#q8LzN(oj9*l`bD0aAM(5WB%_X5XdcVwBZufY=}nm zDSMjz`TAfrm%e5Csllu}Bb+>^R=&xyU)NNH+A@lUu3+6$3h<5E8LzqGE*mNKi%0U= zBVw(f?*5FDI92{FWL~H>ZP2TLOIfsZcLn3{mpp#FdT{zV)qh6AukzR0M7BRK^>ApY z4yQU%wCPAehAPz|r=A)xoLpVZ;kRk%A*K2%@{67zuE$bakRu1_dG z@*_Zw=Fdh;=gG1gYd+(5wkQPi4NH=1>+dvdhfD3#QW|v$ilr5JVHI8N8=tDo%Bh|UgD%)HXjhl#3ENjYsd zasW`H|E(nM!VBJ)DX2fhYmM*UB>Zy$3DZGb#WlUCEC2k?;lGlqnf2*U==l?9&_d&^TzCrz_3yCVAkCzWq{Ku?W zZEXH$I1NR(sIZ3FvWXQCCkj>%?`cmuo=M1X&bF7VUw?MKaIHSX3hI%_7)0~Av%IZ% ztFt!_XJmPnT|D^e*Z2RCK!mD!m<=gKPA;V*0Xc@EB~sNN9^*Do5k=>@7iM!wJddBpH+Kf@u{{wUc*@Yt$mCRl5D_R(MzD{Z>;`!_z&O zhsEEr39B$JHmC@yw)E2}jM%GaS!H?z&JYN^1jCaxK48VKKR;rC6_Z(bjbo1V*gUR= zlN zNUIqbn4Z#&>O5;_h7!m5(;<`yhjvEhLEK6?Io)r}A+@@tvwBlx}}XNidH}aywhIxYxc_ ztviW{@a%;wN3;Z~4NKIhE%VCdaB>_+1riN5d#PU7sT|UuAWP94aN`tHFx`EiavE~? zfq!c&R}5b$WZ(8SFOhUsGD&e{>3-R!hSd%6cLm3>I(^Awg|rc*Hs7nO*#c*~-a|KX zIpJ?AxvL)+z4V)oP60JU)>H_kk}NJbhS!DVp!`=ap{}nyKm)x@`N*k#EsxoR{QhfV z%lD5%$k1LJd#HANH;SF=FJ4V2*LvMJv-S+8wK0To6_N%Vg>3vNyLSUNZvz(Vnr*G4 ze(2@%Wo9Kz6PMx1slAIxI8LxO#u)nzzbF1p%rhp1o?Nl9Weo+Fr)(ej3P0i+kXHaf z#L}&@eByx+3wCu+GR-H&cxlhj+FQj}1m62AqSfv#><;t4CyspE7!;gasx%vnDT&YU zxjigC9F}UKd@FQrEj6L9^Mt+!^XcM%Ta;tgrHymHfcrVN+4ep-170rZ%r(>D7P?{E z_n4;Ja`0=VrAm#moS)(|oNrfoqZxBHlGB+%C#%t%evQ9RSGX)|fR;W5gom{M`W~#N46)0 zyDJ?wly)n83OK2;hr3;2KNI;4hRAuXb3j`b{)|Q<{_UizE@&p0nAs}f~c zV5_FAy}eIa1HE2ZH~^v(Nzo3xc;7@%fAHK%b8})u|0SK^bGzZ8tpW0-cC?4X_ixYJLTghR=Ya$0662Bf;SZulwUJ*!^=nZ=3lzT z=d7&xb*e{Go(%K*#vU;bxwxB-2&KckhUxLjsgFWR>R0&ma*eW`Ap|ZCEUm$gs#r)B zke6wOD9lEma-yGmf5PAYDCmNsGNR=%FR_WdFEs`XrY*&5LOzFvUQ+Gd3B&N`bS7tb zUku@++vT?6O^SN~WX+n#%xf_PfWWyooo7y*%HSqlYLAZodm)iiM(NG2?$(3lGCEZw z;y&ddeGNw=H?d1Vsp%xn!Oi~^;cfW!C?Q!Ukv|c}u6oi_<&`fzLA*7d*)CRSiieGHmV1XNDn1tb>~0wO zQQYw_;fj|6=xox3p!`{#w9lkZx(HqG z3sKmrQ~>lHb3)%|LljO0D<9M;D$lsCHn9fUQ}xtb5Rh1XsB+ijNXYc$OknoA(8f2m)9SwT_;0Ge6$X*G@93jI_(zP-S|zR{AI6m+ zYA7Hlec^AKZyqunOpUjZiz#cMZ8MnrSp)#!-HpoKC@f&BvwvMbG|4-$7HPH<;-s}R zojADFVyWUyK?%3uK_v4mA1smRN(#jGfr9~`qz7P6%>eV7G3IBX#e^)(6Iql z&+)DVc3fZM$ph$TP}7M%@NX{3d2av|8h%v5ci`rwZRq+6kOQik1Y_s?tK8Et&J|MZ z&7dxIy)Zj$PHgO;(2+8INaw)cC5dj;kw^yQ*4xkefxZ6)3M@{8<&u*Q{+k+~HoMJe zV3OkhiG`Kxxb9EUsd}-ADM$KW`KuG$VpZ=Kn6^k>uTUQ2Fow!;@vuO+cvuxTQmw=o zpPuZCN}JH0_U&q@N1CmWJJt298AbU36Qz~Lz}Qcoz8C}#cSJLGm+JdQr7 zyxqAkzgtbT-i~bWJqRg*-tBnWc~W~GD$2l|GxJ!bWgK(5$svg_RAsFzRvX;P`|wr2 zjLG0v{m33gfQ5y?8+RY;M*5%rb%KYXtW8cATPjSNB*e>bA1Oz6=}%e;BbJ3-)bEHgo~$5p#GEGO!F?G zasEq@jA)Uj!bPZQGbZ)P^hsC)*7^Olg_=G>cKF=7x2^zEQ|2h|8vGr(d45bmYmViFyx65nfhT~CGrmw1=$^m^ z|FJkd%eUpsxr{YoncID;-itg<&t5tGO*1Y!Wn6x$hR|}7qZr>^6&O+rfJeIqW59|h z*)(9q&A6&5QE@72ln(^z zO#;B8y-f2j{tt_4Xll}_q&)nP=}WQ%0YiV5rHwnW+M%+D?Jz*HipT`OIO1L(6&3kP zYJn4U`eaUYQTV~KvdP^w2%wA^RzMj*6CuNWY(H()i~7=B=HE<^BP2^Y9Q2X>(k&PPO=0-`9f=$Y904YMq z^Iu`p$3umosnnrzv^D3c<>h06!wp5{KeWnxzyKDv-0$boCWxPmX8)7)Zz)Dq)lSa z#N>v3nQMKf{q&X+P~GAMZgZw{7Kh>l)X_j*&nYMU{$%9?z}$6LuJVHpzk{IqJHQlP z6nwrrsaqjk!xc9Lu__I8P|&)-f4NZ{}R7bDD924IxH zzjz5vH2_aoj}(0_EJdbf`t0a=PJdun`T~oLjjQEgg#itwJ)j_yU)#J^Vi@s^vVb%! zVV?l|cIqUc0fCC`Xgz4>c^sdO!*nTlr}9MU67G_HQ<%?1{#8zw^D3|)O-qKD^aHS7z7Nq- zZxRlaAhae)G*hv#Z&y!f2%yAyvd7 z=93T|!tKHduDE9C!`f!zcf(Kxvjg9i5WF^7oL?-Qju!IxvGlYi(qHDf zpqgu!pyad2(?Nd$U({J((w`D*nikb3U~R*x+}g6NWzKY<=v;n<eRgZWamN+DL4FmDR2A7mqsr zp!a7e3wV&-2Im;itNx~U@wy=jtA}2i2U83rO5TRAVL+`tu>fozANP*qFG?^wogPn* zCU8n;Pi?D(D5&(4V_>m+c81>nqrI<;YIEDxrpl(+rdTOj+$ru*N`c~DiiA)IP>Q=H zP}#T>w75GIiUkS9y|_!Tpe-7T!+q(w`Em6$&Pert#&4f-_d`Ll5L`+MWr z5bWU4bM?Zj$twrBwDCiYt4m59M_YIH?_N~8^Bzos1k|k7q>Z9EAsfXR6C<=|saZW~ zr>V+~7MR?+xV!peIDVtQ3CJal)s1ewh%Zt=DI0F}LR`DxPlJhAjsESYP4_?0p1)O6 zRz@!@4QUmI$5rB8@Vt2_X%y~<1^r`X!DkLiZON?{dP?3-1x;0cBzRN3->0|67zA!= zPmeUceeYixAYiKilme74Q|9qQfINfE_z&t#kMB2unCWOP(O|VdD(le~zt*dbt;gQI zYen+Ciua5&1a6v##g-_d5J=Zeu4UoANVp6QiBjm3SF(TRg8*A2_5>-uoJiPhKl1)w z6%Rx}fJW$AST_Vn;?Bn8WO$5t&KC-9vOb!V`rf)ey@mL$&j7 zPIVS4>fjBjCAUq!mAdzwEcmtbCr23<0|&6&r|g{swTuWg`_$dv=A5Y@wI5b^6|*lJz!UTh$@43aZv3`|GfL=^ZbHbw|K#TEC*hDp0@6lio-YF{07E{f zlg2v~AT(bKDANzVimSia3$pj(*&97tJJOhlc=BmF&g)_QE3w1m)Awarp-Xm)jM4CN z{(wua#BZ~Fd*zUdgZ&0V-HL-BnK!y2mMtBLz+W@#%+_u-bL}v^#LVUYna=wK%-kKi z50mTzsLJbaZxQ@1c%F$%tPU&lUX6Fs$s2!Qn^}<5ltI3RRF4m>ZT0Yqs+r|KJb`qM z8ItK1>!eIROB`*iB4d&@edK*XGXrMiOv#*Jl%W_)z?8Q|u#@)yYyy{zbY zJ-1Cn3$+)&ilD4Q#6$JMknsdNzA{RdaPR>r*$C>C4FmMyKTm65~q2R9L7^F*Qwi-xdwW z!#VSyKCxbDpPOnQoy^y$deI|P%D(Ot#T_)Zr!mFDdUB^W4;+lPAbGhtYNa=={YV%z z{yTFE|Izjvsu4cm&>hg%xUcplCIPx8j#9krC*Qo*82$*wALkPTjNvqXATlfXp)~P_ z2onc|aPfKtn3txKLS#gwk=PQ!*rSx{6G~TH!!US)IE(c6EeRU&bnkf|Jn9n3uqO&3 z9a$w?7qVj6;LRwwIJ2~_g96d}7$Kc}MiWqfE~J9r?V=LWGHBV%!XD(Ym~;dWYFAyR zebL>ao3*3JEZ&LV&_-?s%o;Vc$}7z|U@k$$&4YT&e93%e|1x@D%&AG_hpj6~l=Q&t zFjM!nbwJi+Jx)r5L-|%_FjtLf zV|g`7Sy%@wU##tXu6r+~z`Vcbwy);1}>O(-P3&`gl6&+XNp%j^zRn4%wHNP&7 zFe44b6~es|a2+I*}IF#F6y;qLAh zOAZAl_-{Uexl-oe>dKFbAX%MV;&8=4iK+?)+_c;R)LP484I`Y|j?%-ECh_Erljs>2 zWt@szv~W2qI7-FsV^%?)mFm2}%#qLh@I}##)+RYal87UYy9efo+F~*LMW@N6+!gb* z!Kmi$+r_Ck!gxHz%NMPjWnZsErc(Vt4HHlN^-HM^%OK)2aZ9j2-l>ZE45E=gglK_W zk@&mxwl;AaK)$ibO30!C4dC`ERg^F9XwybDO@{*@Fx>1QIBj(f5F~9Xi~;2(T-H|d zMyse3cM;#uKQ-oAG!^{F?MXjBc&j{mr$quh&w;l=YG`>=%=iIs%f$PQ@TvX6s_t+i zTJ%bI_ZL!z=#&pEO+NexN2FUH?9FnQ`{)Q|DT5SZa6;ZiXK^dzSTdYqa86h)uKp5M zsX%VGwIVNB+~OV$r#!b&uBHx7kKRgBOixcI@$JU;Eu)%dny+Pctb}|CC*k0V$~y4p zAwY{8cc(A4kjq#@Z=7PdoW~x|*RvDO>=}rDj_4{CZy5vOzxGBFe`4dW`Fe2S z29Wd>u|wk3RU{5C8bO9NL%`cF??)M-p3!g66iVV-3S|8U#qUsoK zRjQV|h&^)uond1y<eI(}ai{gzQi|k0YX* zq5ztGTjc{+UTe$2|JHF#O@9odP^VaC;AtoL2Ybs(Idrsov}okW72xLqP>;-ntId2v zqT93;i|C{%*T}XS6|ZOO`5(tdi;`we%Ur#CAH4F{o;VE3*i{0UM-F0SaaQZi zZ()YoQwYx7abm5puF@r#c0 zg~6{_|0JL7$0c~&q2^^H>zBPsey$>g)ClhhDN`mZYz*WB1ds#W{5nOQ-WzQQQv&l4MkxEsO07P8AGzlI`6`bc!gl9n8-xuJvcLW`z1B)t& zxq)2)eH*OaGC(C-dF9EzvA`nVRK82>N@?OFLXXmXmnPY=tVRjNZxm`utDC|98^AG} zj_+M`^!>Wi&7uvUNJdmv@`!{7Igqv^3y;eZBSCe<^E?yVMk&Z0pD>)e{MheM(%0R< zBM&5d_!sEyxeOz7F%p@I1WvEL&0m8;CxJ-y3T|qigw7{uJzC!p!O;+FzJOS^a!1KApURP*kwt1H?QM>r%!|)TJnoO|fl@c@K8tjDdV})mU@!h|N z!s*L6hH7wWL>$tKH>uQAK1yGtQrT2yxZxgxe%z51U!y*?L9@ET0z1^dUrfYU!g0ET z(m)y8g`^LG7Q^0B=zX3Hs-p7brQVZ{DojUb@cRQYA zmgf(oGEbj>NWMct_m`moP)UN^)YJJLI#H35AWF*|Mn)O5I&2^(b;LNG>oCX3iPhw9 zLtmgO%kXvPMf!9oVwBAYsB9oS=dm27qpi(QB&I;kOW}}7mHYx&b7%L7>_x2xNh|ZA ze#v-Le@&JE0G{Y(e%3kyAnO8YFHc4FV#`ok+cIFjB`);=A49d9e-A5l8Q#Gr)!S%$2D0A2vT33%N+;t$rer*j)q{0v9sFkOiekxEdJXB9kd?*^SUK9|x*=x?#mGwR(>ZxvZ z^m-ygpxtqVEjn)J{>9ag?b|Aan`&3JGB@PfhTeAku4;PDA+y9fq^Ustx&EDnzz2#e zcpz@(eMic6ruV^gZ*KG6h!1?7nNK9+$nbF4Kb@{4oi+FsF1>h(%ZT@tKdKQ{RHUvu zftbUTXy5{c%5*v?@7G173nf0yfN1?-P|ZKK=ZuF1JirT-67YMccj99?~B` zlCp(5x7AQ#=1wr3_oE*wg}>eYTJg%N_GYg6Vykoj$F}_}ap|*xT4tk+v1J7pwANAQ z1ZgAqsLv?K>~XMd@#UBE5H|MjV)5y$QACpf{>{=3Y54<(4=4z(UjYfy(bMY%N`IftG^W>z3_pN9LK7FRQG~io_rR=X)nqevP z=jhttpe9V?s>tztk(@tuzf`2;^0ATU*}{p#o&Cf5me|R>(tCQ@ELZMt+!Hp7y#2A` zlQ^_&DdJu3h4h4-1q?_pvMdfH@v)wtc=>a|BoAorfl<;Heq}W_InP}YU7vU?r7Q*f z?RY9oeGX9Mo{PPde%c>VlviL2yR3}PbP`dgo0NPvDFHW`odDhOM!_|+wnP22ZOvS$0!ci-g)t2YoLp~Z(dN0A#z7{z+vF%(yofKGv=g`Y$|^_ONFdHiO3F?3ps1()cFK|Yv;$d|G^KY`H4bC<`K)MM+~3# zm>5Xl5{3CCF;@wv(oU0E((s(Lnh|a>t|6|wt395l9^c+Ov>OugMFfBFnWl}!o~vSI zC#7_DpxPa*;<+$y4ujYpA0NFq;DBAk5Ld z;C9RYOa1-sctx!3NTN0wH4|BRlVxT3WD?>7on|>#^bu9+c_;XN3DXDTx~~mIunmfI zmn&;$v=rFvcp~XuFLkF7X`(cN4ZDcuhUcZfLrrLJ9Yjj~bZ}(RtK-+J-pj;UZ{G2$ zTL7AL^fnab<3aZd(-S1>F{Hq#W}KP$o=@zWSj?1a#tYE!XJC6Ow95>zl9FO`-PH8- zSf0=2VxvV4R{F{D%;p&~xs2K`%h4aMC6w_#)cf{un`V^)%zUF(R{nQv(RcV1@4|Q} z*aA&6+1c44KnD?Fd+vuJy>Zw%E7&7GY`U&vt8=zT?H@lqUZ2W#xifE6U~eTMH40^} zsnprnF+r*|$~V7f>Cb6g=w-xm@A_?t?$3F-qpgywo<@_LQS@?7$X824#V*A+%~P*d zt8^lx_Hc05i+DL4r$(#tS()hGdDx=dvA^4EB)#kHpJ|x1%yz0m#RvDv`B-C#-YHjcH!%pKl zx5vrdlcP>wV8urWQ`9qV?9tUw$LZ6!tQXkF8k>CE8EFmKxTv!{Fvm>dN&aqB)|pYS zlQY7>yfu|S9N%QONhX17Jzo9p{ej*zToE@<2&_@o^olGR!&|5BfggsM z@!ugfmR@emtBH#XULCL;uHduO^1$mv<&t&ijw=80>#b|3+}|CIj_13lD1gyvwlBH# z9%=Eys?(S6%g9@zc6af(hf*J*33jH4wi-|6&-{R|ee!6~zIZ-7XwDw6bXN0ZqG3-YF`b5BFTqpH` zNEb0>dkUK<1tra`7A>bruw;d1M|?JJsIyu;Q|skq*f4X8`|Qz-i&VJ@>^^h^|K`at zTNCOX5wx`5hIPSU+L-8WI16?S`G>95&;eH9drR-x7T+Jx5+SmkEhvII8uJ1L1O$AY zJX-%cS;TXG)<8R*eIUUgE9SmUMP<$BvAeMF!}Jr<34Z?i^h@Z|%w_4ci&&j;-Jk|9 zOAn2DvPc$g+%ie01DRKvh{JmNvQU(P(q@02zXCMz_5uNg4Aq~u#uvbMpD;R(|OixMU$aIuZ^pudne8L z`xeUzS-s|~DC_?AC>FmMA`klx)#`XC|dwGqmjGkZ@q6rmUzI5JN!tpiYYXL9$(bEi-o34lSmUHkEd&)4M8r|E5+L69~(L^Ld z|8{YknmISF@XX!wutdOYB%Di50;AoxMsz7S`i748`q9lSmq=cgcReK+o1ZK0ZoNd7 z8qb4XSW-J*X|nhlYgkhsH5tJ7?B9gfUutpnPE24+gTXBOt$n{m;{Vf&MKf!d$p7d8 z>`K;s>#5TB@vn}v34O6>%w7>TJGyz|jZ-+PQG=_-hD)T{ac()*X+!ph<2=l8B^0Im zvQxd&Vw+wUZ#ibB6}6L$vd6iUEcL16J3gX3Gt%ANx#-jvEZ8TG&55OKb<$qmq4DrU z_fp=OrT^36k-&fC);r2s&b+b0Lv=!Rh76k!k0v*Hx3a_%rOM>DFRZIVy$Y4MFU)e1 zrH~?e-})VwO3)NJ%rk?_)_u`2ws_u*ocF4EP2ZSzSo3!B>`dRsyEtK){pjgy7(fFl z8xZvX>MdQIsxMm8NPiY%71p*0K(DqRJ?!n@uN#faI=w$x-xn`@uU76~n-kn>Bv-LB zoSNTlnf)UOQHm1&9GXoidC5rV5})jCTo~uPJx9+ntHn(|+a#BIVt7Wo-jLCN9?sy% z@p@Z@XqldNyc{PrbjA%5O--1=;P{kgl#R@CvCq705Ie`9grrc>F#I|V<{Oe7kcBxe zTC+?)D_8y1o%E*oOP{o29Cxmy&myy~HXY~F3n=eljzzLUUj9NYbH#z`f*uUL7@Y)^23_58eM(b*Vd z@-p2nnJkV{vRWS8Ia<>qfjoVcpm=dKJkhuv0_jzK1T6WGe_QeZm$hC;M<+p;JYv&H z-?g76(T{P`VE;pdk%(r*t;c#_hdX<5tv|%dgI>+94)b!mZw!uL&8$0lseCw@6~hRg zY_`p#_Ko|>_Dt81_YQYYyCkLE6+iwRpOvl2KuS8e;j^)X&hmH z*=4Fl+_YFFqnw{&FZ_~fjy+#muQwJ+z-72$xPq})2G?AsRAmqHy>EH;)2cp~P)r$3 z?R)EcJ87u^rGDvU0|;WnD1|?|lZIVt`#wU)yS!m%%p$-W7}rg^7}=O0AG>3jJ4{M5 zcjaSPhI%DVC%(O{tGQ9TTCPNK1dWv#_4x9+)B{#mjsy`p8P~hs!JM)bYE8@xn$fr% z6`!B8RW{kC+#d9Csp00rF=!L02WkPXzI4AeqD7Pm#XV_bcQTDIS_;`cFKpCGNQ<>ybc zxvQ|%q*kgD5<1}!%660QarpZoXFk7^MQ{Be>vk+5YgCZ-6x1`t5Kl`t*h$-4>&t!M zG}5On?wdVws+xUV!Y-2A21VK|OCP)xGq6^6?Y*)iS@U;#aA>@oJR`uz1&M@J=KE|mU^6j^bA0aSD=}^{i zz!T2DJPcPs=Iq5ZM-U3`*vX?z`eP$rpF3B`#x1mlwJ6!?MNG;S4>8d_2 zNyqIm}evg9mBqa7rPcq z;6i8Ewzfcm^7R>dWI7b8IYq}pxg&WJIbo{BY52^B=Gdf;v%bRcrHYi#R6{+5q+l^( zDN-uDiRtKGkiWcgkE*(VS^^T|W2*tggf^}n6&tcgBMKD;;yCG;N+E_JIk7|21cL{d z54c>v4_rw~Xn!Q&dSD<>ntVTwGR3Si5F&meW7x@N*6PHczXx@ow&gM1XSx~ zEga~)`baXRs1$2`kKF6+X9R$?i{Yh23oLm6OL{ z$%7sZf-*4u2JR=r!kUt?wa8{wpQ;V~?TQYwS3X3b<<+>plkAe^O7Rw_th}2OX&K~F zV`-jiX|14P8moqmFuO-Wv`JEGbyZKLY&j*r^Tr9J(ujjwjS{pzIOAm&DB>3 z3_lr8GlDva)QdHh*0Ih{ zBpvuz!CHF3W1*@~7XSKgnk5D$XLdoZpfIS*n4Ju70nFat)1AN0u!DlQ!hS5!Kh=xe zXWuo4_(Z#hV#u1&3NZvyubN#?#5wGDFjy9}+xBGR6gGI>=Q%``hnn)?(DpKl0ES^@ z5I5!{hrsIV@7xc#!f<$2?d23B0tED2qNxnR`%5$x!`A6bPaZmke`iM{Ztnqh=QT_& zsY3@V?FZ)kohd7gP#SdKNkgfJXHGM_bh<%Y&Ye84w4($Ykz`*f_I2*`?$q=}xu(cZ zvyCLG&qG=Hym;Vz{wU)i&|A zhCx>#$hPrzebz@m#)n?jEv5=T9s9_5=sIt2-5s3??StznCJ9yyvtyewP}y$SxikUy zV}vy%RoCPQg&LdZFKu)k>@G*m4s9MJJycr4#OI`!z_FCDDS{MukcE~M)e?n=&ir&_o%wln%Q`?j7{4k1kMsQN=Lfo%0hla|up#krZXZdp|344ft#()HD;@Df9S*59bRt-+PfiZ}hkJ>_&?A6<-C36ipQjCy3SO z*VyDKua&)34y4swT)9azO^AajZ(j3J61&n`dcW3RLNq2rm3iMQnCQaWTiM!qYQr`5 z;6!ovQp9tUu|nOFdNG(8TLI;?40oDGHkJ3;dmXkRj@R5ELwl*4ay`G^JE!$j`&J+S zKn$;0$8&xCL_A6%6@Zpt!hJu1*UUc|y5GIp&sA9Gf$h0AO~bc~-097TNM$}ko@F+i zzT)!BzWwX7KJO+Yo-?Sho2y&cGVhI31dzTkrl$<@p^=n!wapC(xvL*t1u~Ct$eNJse3SFi3+w2O|t}&coy#q;CNCn$LN)FTJfVkze8T zXvdyAIZOw6VC7#746yHN88tm255<)iVJSA zDv$;Mz~24_1O*pkz||uCNksYQ54Yy8>K@Ose;Cg4ZF|BEx$XF;wM9j9F$0CbqhdMq z?t;r+mOu46+%)HmQmpxiSs!X`KqT%&=qHKcP7v0F>n4c^Iuz`i-+wFq%LQcp@uH#_ z6qEqUI3BH((Om+n*WC9f0WRtXP;F%lKUQhW{~&{}{!8 zJjG84{r~<_V4E`CzdYONy@5?dmm=mGjf9=`%p#ooPR6#753(d-Z(D!e4{s|@*hjw*a^Slo7s>MMF79esje0}t}8550_qo-auNmq zFV_UBN5eL^fD+LggBh~ZjjI3K6_2*(a)8b_#|AZjtj9&!EOF-n#8aA+ZTF_$>&^Un zPbV20JeW>3SFdvlsddy&9vt+-3wXKCc-3{Ky&Wl<7_2 zv*`{RKkImlDEzGAy+GA|-7f2`GYN4zbziEaA%WDf$rPY}T?u3ej|94v=WH8Rz0q}e z>W6tZ4Clc1(!!TS$mgl0WZR>VeD2$`l?s_U2`A5+zSx(Zrytu+evYvmk=A! zyEh7GI!*yJd%}D0_>0kPrq#s&+BoY{1oI&b_=#GeRf2+3*P{Rk$f{4!eWi}Dok>p~ zYAD@(j*n#n2e>fTrM0zD5f6Bu+SM-lS2Ae?JE5OQj~Uh2fp!mp>~yyK&V0vxR;JVL zH5qJb#%}tLRajWqxQfqYbYf#;3uc_q*zL9hl1DL$aAtGR#=m}K_~esM^qDZ$;2Vw? z#gRbq41q&flh4Kb{yZRiRYc`Fs#yU&*{{seWOqWR16_Z#3=JuvAYEN1P@Rk7T)?n1 zI##de4;Uv+Z_Ih*{Cfkl6WHu#kJN`#cdSUlcKPPf=a1?vTyXK zo}e#Tl;7h+0>5QAW(Os0YZVi0B>G%BEP64&k#+H{QO`|77yc$Zg7e6=)-VcsN{QD12ZM^MD_FuHHTV z5XSr*A0)*K#dS#d%KQ4LM7Si*sn&;3Z-Wn$ra{|OTDLxz1LS8Qq5jV zc2?WHJ9z&>CsQGUX0@M{*Mb0mD;a=(Qh3O5s>97O4p&;G5SmZLXTfWxtH0b>Ce%Q> z`;rptHK`;u3Wp{6cdC~b!~CY}%vu*&X@b^q0DG(pFabI}0)IRTdO)y_=eA4%w3z~Q z?2o@ku`+qRtypb~0Y(#l>V=qdKQ&@o*0Cp!2sN(G=X(pQq#CF@p8NF%O<3UN&=!T; zby7ryfKu2_#hXz{u9WIpOZm@}Co^^9C6*GLCcW4a&4=#!<(b=R4&i+$V5MMT?T7wc zNMA&QajySeV`aX6NzO{ResKu@fBR-S9YA475Waz>^c%3S2koi>+0N+tXaStcZSobL z?j~MIfkFAbfM9L1CC)4Y>2n7JAhmzbS7Fir5V6~Wi#|UX5GKEcMH1=3FM)-{o6!Dh zxg!iPu$s{$d*n$jmFG%S1t6B_HTM3_1hn8WaqvEkBRd4LZoNPQBUVW-Or&M1C-b34 zqc2doe;>``t1ssEjddhXU41Uz4ycfCQ|*@x#9ot5_k(=YP6x(@fY@o_2hhyQNKNuk zXUcT~guWIpLigIq3p#INMauyGtuhH?nrXfeXK05b|EwleB}Gh^orA-CI9qYJ(feo= zwh=L=m2N0u@im$4x?KH7F6SXR@;ioRsUAx~>B*2R^QHH=+>rpg9Zbe$0GUtGOdkbY zFdATk6C#nvOCjcf%%^#4l-{MCRPTZEEv#w7)jm9|CzOeXbS|Nk!e5Oz)3NLG$p65U zRedT3)e9ZMp2ZK9Jl;TAegFs3auTenP$ULN;r1y^%OgmPj<&>oh7S=Q!%uiaZW2KE)U1cs88xB;l zn5h7I6o{UE`<%p8))`W4+$eT@3N%lE;}A1H19Y7`Fw2bZ?~|bV`1{xSn2q~?!LpH9jzz^ zoqiv>g(4JLcxw{U2E><1q#@TG^lG;Qhd(r80M=yq!F_Tf43930H&@n+29iyEMIQMIWL%-JH)n+-?TL>g==(;5a nUBv%az5uwR{{!cQxVmNZly7UK1AqG3p()C#Ju7``^8UX7E{HN5 literal 0 HcmV?d00001 From 6eb119988be786bdd0480459f2b76c544dbf41dd Mon Sep 17 00:00:00 2001 From: chuanli11 Date: Tue, 24 Jan 2023 10:13:47 -0800 Subject: [PATCH 23/27] benchmarkupdate: noxformers, mig --- README.md | 9 +++ benchmark.csv => benchmarks/benchmark.csv | 0 benchmarks/benchmark_H100_MIG.csv | 65 +++++++++++++++++ benchmarks/benchmark_no_xformers.csv | 82 ++++++++++++++++++++++ docs/benchmark-update.md | 2 +- docs/pictures/sd_throughput_mig.png | Bin 0 -> 81883 bytes docs/pictures/sd_throughput_noxformer.png | Bin 0 -> 108753 bytes 7 files changed, 157 insertions(+), 1 deletion(-) rename benchmark.csv => benchmarks/benchmark.csv (100%) create mode 100644 benchmarks/benchmark_H100_MIG.csv create mode 100644 benchmarks/benchmark_no_xformers.csv create mode 100644 docs/pictures/sd_throughput_mig.png create mode 100644 docs/pictures/sd_throughput_noxformer.png diff --git a/README.md b/README.md index 22b85b2..d23fdfd 100644 --- a/README.md +++ b/README.md @@ -125,10 +125,19 @@ cd lambda-diffusers/scripts make bench ``` +Currently `xformers` does not support H100. The "without xformers" results below are generated by running the benchmark with `--xformers no` (can be set in `scripts/Makefile`) + ### Results +With [xformers](https://github.com/facebookresearch/xformers), raw data can be found [here](./benchmarks/benchmark.csv). ![](./docs/pictures/sd_throughput.png) +Without [xformers](https://github.com/facebookresearch/xformers), raw data can be found [here](./benchmarks/benchmark_no_xformers.csv). +![](./docs/pictures/sd_throughput_noxformer.png) + +H100 MIG performance, raw data can be found [here](./benchmarks/benchmark_H100_MIG.csv). +![](./docs/pictures/sd_throughput_mig.png) + ## Links - [Captioned Pokémon dataset](https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions) diff --git a/benchmark.csv b/benchmarks/benchmark.csv similarity index 100% rename from benchmark.csv rename to benchmarks/benchmark.csv diff --git a/benchmarks/benchmark_H100_MIG.csv b/benchmarks/benchmark_H100_MIG.csv new file mode 100644 index 0000000..87c70dd --- /dev/null +++ b/benchmarks/benchmark_H100_MIG.csv @@ -0,0 +1,65 @@ +device,precision,autocast,xformers,runtime,n_samples,latency,memory, +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,1,1.73,7.7 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,1,1.06,3.46 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,2,2.66,9.79 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,2,1.73,4.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,4,4.47,18.49 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,4,2.63,8.91 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,8,8.16,23.86 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,8,4.97,12.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,16,15.98,42.38 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,16,9.61,29.01 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,32,32.04,80.51 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,32,19.07,55.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,1,2.3,7.74 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,1,1.52,3.45 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,2,3.95,9.48 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,2,2.42,4.57 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,4,7.12,18.2 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,4,4.17,8.9 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,8,13.91,23.75 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,8,7.91,12.49 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,16,15.73,29.01 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 4g.40gb,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,1,4.2,7.76 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,1,2.58,3.41 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,2,7.61,11.09 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,2,4.56,4.59 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,4,14.45,17.65 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,4,8.24,6.78 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,8,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,8,15.81,15.65 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 2g.20gb,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,1,9.17,7.76 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,1,5.39,3.47 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,2,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,2,9.29,4.63 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,4,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,4,17.4,6.8 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,8,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,8,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe MIG 1g.10gb,half,FALSE,FALSE,pytorch,128,-1,-1 \ No newline at end of file diff --git a/benchmarks/benchmark_no_xformers.csv b/benchmarks/benchmark_no_xformers.csv new file mode 100644 index 0000000..bc50a0b --- /dev/null +++ b/benchmarks/benchmark_no_xformers.csv @@ -0,0 +1,82 @@ +device,precision,autocast,xformers,runtime,n_samples,latency,memory, +NVIDIA A10,single,FALSE,FALSE,pytorch,1,4.75,6.73 +NVIDIA A10,half,FALSE,FALSE,pytorch,1,2.71,3.43 +NVIDIA A10,single,FALSE,FALSE,pytorch,2,8.75,9 +NVIDIA A10,half,FALSE,FALSE,pytorch,2,4.99,5.53 +NVIDIA A10,single,FALSE,FALSE,pytorch,4,17.18,18.14 +NVIDIA A10,half,FALSE,FALSE,pytorch,4,9.65,6.84 +NVIDIA A10,single,FALSE,FALSE,pytorch,8,-1,-1 +NVIDIA A10,half,FALSE,FALSE,pytorch,8,18.58,12.66 +NVIDIA A10,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA A10,half,FALSE,FALSE,pytorch,16,36.32,20.64 +NVIDIA A10,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A10,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A10,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A10,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A10,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A10,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,1,1.72,7.76 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,1,1.18,3.41 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,2,3.03,9.04 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,2,1.88,5.53 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,4,5.53,18.04 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,4,3.35,6.74 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,8,10.95,23.85 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,8,6.28,12.6 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,16,12.57,20.58 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A100-SXM4-40GB,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A100-SXM4-40GB,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,1,1.99,7.76 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,1,1.5,3.45 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,2,3.52,11.11 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,2,2.3,4.53 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,4,6.31,13.98 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,4,4.04,8.91 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,8,12.21,23.91 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,8,7.59,12.75 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,16,-1,-1 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,16,14.54,21.24 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA A100 80GB PCIe,single,FALSE,FALSE,pytorch,1,2.01,7.73 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,1,4.15,6.76 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,1,2.43,3.42 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,2,6,11.1 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,2,3.88,4.5 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,4,12.85,13.97 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,4,7.77,8.88 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,8,32.69,23.88 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,8,21.21,12.74 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,16,81.14,42.77 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,16,48.49,21.23 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,32,-1,-1 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,1,1.73,7.7 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,1,1.06,3.46 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,2,2.66,9.79 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,2,1.73,4.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,4,4.47,18.49 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,4,2.63,8.91 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,8,8.16,23.86 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,8,4.97,12.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,16,15.98,42.38 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,16,9.61,29.01 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,32,32.04,80.51 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,32,19.07,55.57 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,64,-1,-1 +NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,128,-1,-1 +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,128,-1,-1 \ No newline at end of file diff --git a/docs/benchmark-update.md b/docs/benchmark-update.md index 9ef98a6..b383e01 100644 --- a/docs/benchmark-update.md +++ b/docs/benchmark-update.md @@ -16,7 +16,7 @@ Results will be written to `results.csv`, the benchmark will take different amou ## Results -The current results for the benchmark are available in [`benchmark.csv`](../benchmark.csv). These results were run with Diffusers 0.11.0 and xformers using Ubuntu 20.04, Python 3.8, PyTorch 1.13, CUDA 11.8 ([NGC PyTorch container 22.11](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-22-11.html)). +The current results for the benchmark are available in [`benchmark.csv`](../benchmarks/benchmark.csv). These results were run with Diffusers 0.11.0 and xformers using Ubuntu 20.04, Python 3.8, PyTorch 1.13, CUDA 11.8 ([NGC PyTorch container 22.11](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-22-11.html)). xformers provides a significant boost in performance and memory consumption allowing large batch sizes to maximise utilisation of GPUs. Our best performance comes using NVIDIA A100-SXM4-40GB on [Lambda GPU cloud](https://cloud.lambdalabs.com), at the maximum batch size tested (128) at half precision we observe a throughput of 1.85 images/second when using DDIM 30 steps for sampling. diff --git a/docs/pictures/sd_throughput_mig.png b/docs/pictures/sd_throughput_mig.png new file mode 100644 index 0000000000000000000000000000000000000000..5e813a190bcaf0df581e725b653dd04f9c38ad72 GIT binary patch literal 81883 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 literal 0 HcmV?d00001 diff --git a/docs/pictures/sd_throughput_noxformer.png b/docs/pictures/sd_throughput_noxformer.png new file mode 100644 index 0000000000000000000000000000000000000000..79e6e015b0b80f20f7c86700c3365c6d30ac6adf GIT binary patch literal 108753 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 literal 0 HcmV?d00001 From 7f1bc8534ef578117b59d3539b33b7adb60e867f Mon Sep 17 00:00:00 2001 From: chuanli11 Date: Tue, 24 Jan 2023 11:00:36 -0800 Subject: [PATCH 24/27] Add cost analysis graph --- README.md | 3 +++ docs/pictures/cost_analysis.png | Bin 0 -> 79915 bytes 2 files changed, 3 insertions(+) create mode 100644 docs/pictures/cost_analysis.png diff --git a/README.md b/README.md index d23fdfd..08c2235 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,9 @@ Without [xformers](https://github.com/facebookresearch/xformers), raw data can b H100 MIG performance, raw data can be found [here](./benchmarks/benchmark_H100_MIG.csv). ![](./docs/pictures/sd_throughput_mig.png) +Cost analysis +![](./docs/pictures/cost_analysis.png) + ## Links - [Captioned Pokémon dataset](https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions) diff --git a/docs/pictures/cost_analysis.png b/docs/pictures/cost_analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..e443587b741226a079812942ceab2c2fd8ad960f GIT binary patch literal 79915 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 literal 0 HcmV?d00001 From 86a67dd21d504ed25b560610bfb7f1686838987a Mon Sep 17 00:00:00 2001 From: chuanli11 Date: Wed, 25 Jan 2023 15:22:23 -0800 Subject: [PATCH 25/27] Add A100 80GB PCIe to benchmark --- benchmarks/benchmark_no_xformers.csv | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/benchmarks/benchmark_no_xformers.csv b/benchmarks/benchmark_no_xformers.csv index bc50a0b..d578b6d 100644 --- a/benchmarks/benchmark_no_xformers.csv +++ b/benchmarks/benchmark_no_xformers.csv @@ -47,7 +47,22 @@ NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,64,-1,-1 NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,64,-1,-1 NVIDIA A100-PCIE-40GB,single,FALSE,FALSE,pytorch,128,-1,-1 NVIDIA A100-PCIE-40GB,half,FALSE,FALSE,pytorch,128,-1,-1 -NVIDIA A100 80GB PCIe,single,FALSE,FALSE,pytorch,1,2.01,7.73 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,1,2.05,7.76 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,1,1.53,3.41 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,2,3.09,9.04 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,2,3.06,5.53 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,4,6.34,18.04 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,4,4.57,6.74 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,8,11.16,23.85 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,8,7.91,12.6 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,16,22.59,42.63 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,16,14.22,20.58 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,32,44.02,79.6 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,32,27.73,45.19 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,64,-1.0,-1.0 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,64,55.55,79.54 +NVIDIA A100 80GB PCIe,single,False,False,pytorch,128,-1.0,-1.0 +NVIDIA A100 80GB PCIe,half,False,False,pytorch,128,-1.0,-1.0 NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,1,4.15,6.76 NVIDIA RTX A6000,half,FALSE,FALSE,pytorch,1,2.43,3.42 NVIDIA RTX A6000,single,FALSE,FALSE,pytorch,2,6,11.1 @@ -79,4 +94,4 @@ NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,32,19.07,55.57 NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,64,-1,-1 NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,64,-1,-1 NVIDIA H100 PCIe,single,FALSE,FALSE,pytorch,128,-1,-1 -NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,128,-1,-1 \ No newline at end of file +NVIDIA H100 PCIe,half,FALSE,FALSE,pytorch,128,-1,-1 From 5d4021147638b48b364eac53960599862cbeebc5 Mon Sep 17 00:00:00 2001 From: chuanli11 Date: Wed, 25 Jan 2023 17:17:30 -0800 Subject: [PATCH 26/27] Add A100 80GB PCIe to benchmark --- docs/pictures/cost_analysis.png | Bin 79915 -> 25876 bytes docs/pictures/sd_throughput_noxformer.png | Bin 108753 -> 46964 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/pictures/cost_analysis.png b/docs/pictures/cost_analysis.png index e443587b741226a079812942ceab2c2fd8ad960f..2b5a473868e8a520828f2654c680bda2988980af 100644 GIT binary patch literal 25876 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 diff --git a/docs/pictures/sd_throughput_noxformer.png b/docs/pictures/sd_throughput_noxformer.png index 79e6e015b0b80f20f7c86700c3365c6d30ac6adf..baae9623d08936011f827e7e406bc245c11dd196 100644 GIT binary patch literal 46964 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 literal 108753 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 From 8571d8d492c6a999b8417cfb7752694a18d209a6 Mon Sep 17 00:00:00 2001 From: Chuan Li Date: Thu, 17 Oct 2024 22:11:11 -0700 Subject: [PATCH 27/27] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 08c2235..7306ced 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@ _Additional models and pipelines for 🤗 Diffusers created by [Lambda Labs](htt - [Stable Diffusion Image Variations](#stable-diffusion-image-variations) - [Pokemon text to image](#pokemon-text-to-image) + + + ## Installation ```bash

+🦄 Other exciting ML projects at Lambda: ML Times, Distributed Training Guide, Text2Video, GPU Benchmark. +