From f35947862323b670a510822606d41c26d104b2d4 Mon Sep 17 00:00:00 2001 From: Divyendu Dutta Date: Tue, 2 Sep 2025 20:14:44 +0200 Subject: [PATCH 1/6] [FEAT] Add function to load benchmark results from CSV as DataFrame Implemented a utility function that reads benchmark result CSV files into a pandas DataFrame. --- tinydiffusion/utils/csv_utils.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tinydiffusion/utils/csv_utils.py b/tinydiffusion/utils/csv_utils.py index 211dcfe..12495ce 100644 --- a/tinydiffusion/utils/csv_utils.py +++ b/tinydiffusion/utils/csv_utils.py @@ -6,7 +6,7 @@ LOGGER = LoggerConfig().logger BENCHMARK_SAVE_PATH = os.path.join( - os.path.dirname(os.getcwd()), "results", "benchmarks" + os.path.dirname(__file__), "..", "..", "results", "benchmarks" ) os.makedirs(BENCHMARK_SAVE_PATH, exist_ok=True) @@ -25,3 +25,23 @@ def save_results_to_csv(results: list) -> None: df.to_csv(csv_path, mode="a", header=not file_exists, index=False) LOGGER.info(f"Saved benchmark results to {csv_path}") + + +def load_results_from_csv() -> pd.DataFrame: + """ + Load benchmark results from a CSV file. + + Returns: + pd.DataFrame: A DataFrame containing the benchmark results. + + Raises: + FileNotFoundError: If the CSV file does not exist. + """ + csv_path = os.path.join(BENCHMARK_SAVE_PATH, "benchmark_results.csv") + if os.path.isfile(csv_path): + df = pd.read_csv(csv_path) + LOGGER.info(f"Loaded benchmark results from {csv_path}") + return df + else: + LOGGER.warning(f"No benchmark results found at {csv_path}") + raise FileNotFoundError(f"Benchmark results CSV not found at {csv_path}.") From b6a4a5243442f9fbd00dfb9241cf0431167cb3d7 Mon Sep 17 00:00:00 2001 From: Divyendu Dutta Date: Tue, 2 Sep 2025 20:15:59 +0200 Subject: [PATCH 2/6] [FEAT] Add script to visualize benchmarking results Created a script to plot benchmarking metrics such as inference time, memory usage, and variability. --- tinydiffusion/src/benchmark_visualizer.py | 61 +++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 tinydiffusion/src/benchmark_visualizer.py diff --git a/tinydiffusion/src/benchmark_visualizer.py b/tinydiffusion/src/benchmark_visualizer.py new file mode 100644 index 0000000..e5e0aea --- /dev/null +++ b/tinydiffusion/src/benchmark_visualizer.py @@ -0,0 +1,61 @@ +import os +import pandas as pd +import matplotlib.pyplot as plt + +from tinydiffusion.utils.csv_utils import load_results_from_csv, BENCHMARK_SAVE_PATH +from tinydiffusion.utils.logger import LoggerConfig + +LOGGER = LoggerConfig().logger + + +def visualize_benchmark_results(df: pd.DataFrame) -> None: + """ + Visualize benchmark results from a DataFrame. + + Args: + df (pd.DataFrame): DataFrame containing benchmark results. + """ + # Set figure with 3 subplots (stacked vertically) + fig, axes = plt.subplots(3, 1, figsize=(10, 12), sharex=True) + + # Inference time + axes[0].bar( + df["desc"], df["avg_inference_time"], yerr=df["std_inference_time"], capsize=5 + ) + axes[0].set_ylabel("Inference Time (s)") + axes[0].set_title("Benchmark Comparison") + axes[0].grid(axis="y", linestyle="--", alpha=0.7) + + # CPU memory usage + axes[1].bar( + df["desc"], + df["avg_cpu_mem_usage"], + yerr=df["std_cpu_mem_usage"], + capsize=5, + color="orange", + ) + axes[1].set_ylabel("CPU Memory (MB)") + axes[1].grid(axis="y", linestyle="--", alpha=0.7) + + # GPU memory usage + axes[2].bar( + df["desc"], + df["avg_gpu_mem_usage"], + yerr=df["std_gpu_mem_usage"], + capsize=5, + color="green", + ) + axes[2].set_ylabel("GPU Memory (MB)") + axes[2].grid(axis="y", linestyle="--", alpha=0.7) + + plt.xticks(rotation=15) + plt.tight_layout() + viz_save_path = os.path.join(BENCHMARK_SAVE_PATH, "benchmark_comparison.png") + plt.savefig(viz_save_path) + LOGGER.info(f"Saved benchmark visualization to {viz_save_path}") + + +if __name__ == "__main__": + df = load_results_from_csv() + + visualize_benchmark_results(df) From 5b74c23c449087c749a313b7ff08547fabeb1f27 Mon Sep 17 00:00:00 2001 From: Divyendu Dutta Date: Tue, 2 Sep 2025 20:16:31 +0200 Subject: [PATCH 3/6] [FEAT] Add the benchmark results plot --- results/benchmarks/benchmark_comparison.png | Bin 0 -> 63112 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 results/benchmarks/benchmark_comparison.png diff --git a/results/benchmarks/benchmark_comparison.png b/results/benchmarks/benchmark_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..150c160a239996109836accbf92b841406e49bc5 GIT binary patch literal 63112 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 z Date: Tue, 2 Sep 2025 20:50:13 +0200 Subject: [PATCH 4/6] [CHORE] Add repo logo --- tinydiffusion_icon.png | Bin 0 -> 96317 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tinydiffusion_icon.png diff --git a/tinydiffusion_icon.png b/tinydiffusion_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7de979ad05a0720522ae10c2261f54b630642b18 GIT binary patch literal 96317 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

+gsVPzu@c5YlyzH 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 literal 0 HcmV?d00001 From 4ecae9d46982bb7564d9c504dae3195de53a8185 Mon Sep 17 00:00:00 2001 From: Divyendu Dutta Date: Tue, 2 Sep 2025 21:22:27 +0200 Subject: [PATCH 5/6] [DOC] Update readme Improved the project documentation by updating the README file. --- README.md | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bee24ca..e9dba59 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,54 @@ # TinyDiffusion -Optimized Diffusion for Edge Devices + +

+ +## Introduction + +This repository benchmarks Stable Diffusion UNet inference performance across different runtimes. The focus is on comparing: + +- Native PyTorch UNet (GPU) execution +- ONNXRuntime UNet (GPU) execution +- ONNXRuntime UNet (CPU) execution + +The goal is to understand the trade-offs in inference speed, CPU/GPU memory usage, and runtime stability when exporting Stable Diffusion components to ONNX and running them with onnxruntime. + +### Features + +**ONNX Export**: Export the Stable Diffusion UNet model from Hugging Face’s diffusers library into an ONNX graph. + +**Flexible Inference**: Run inference on CPU or GPU with onnxruntime or fall back to native PyTorch. + +**Benchmarking Suite**: Collect detailed metrics including: +- Average inference time & standard deviation +- CPU memory usage (Resident Set Size) +- GPU memory allocation + +**Results Logging**: Save benchmarking results to CSV, with the ability to append new results across runs. + +**Visualization**: Generate plots comparing performance across backends for quick insights. + +Why ONNX? + +[ONNX](https://onnx.ai/) allows exporting deep learning models into a framework-agnostic format. With onnxruntime, models can run on multiple backends (CPU, CUDA, TensorRT, DirectML, etc.) without depending on PyTorch. While this repo shows that ONNX on CPU can be useful for portability, we also observe that PyTorch often outperforms ONNX on GPU for Stable Diffusion UNet inference. + +## Setup Add the project root ie, Folder containing this README to PYTHONPATH whichever way you want. One way would be to create a .env and write the following in it ``` @@ -11,6 +60,45 @@ Another option would be to run `$env:PYTHONPATH = \full\path\to\projectroot` in Install pytorch, torchvision via `pip install torch==2.6.0 torchvision==0.21.0 --index-url https://download.pytorch.org/whl/cu118` - Conda doesnt install GPU version on Windows. -##### Sanity +### Sanity Before committing changes run `pre-commit run --all-files` or `pre-commit run --file , ...` +## Quick Start + +### Generating Benchmarks + +Run +```bash +notebooks/baseline_generation.ipynb +``` +to benchmark the Pytorch version of Stable Diffusion's UNet from HuggingFace. + + +Run +```python +python tinydiffusion/src/onnx_export.py +``` +to export the UNet to an ONNX graph. + + +Then run +```bash +notebooks/onnxruntime_generation.ipynb +``` +to benchmark the ONNXRuntime version of UNet on GPU and CPU. + +### Visualizing + +Once all the benchmarking results populated in `results/benchmarks/benchmark_results.csv`, run +```python +python tinydiffusion/src/benchmark_visualizer.py +``` +to generate the visualization plots for comparison. + +## Results + +Results + +## Analysis + +For analysis see [this](https://github.com/DivyenduDutta/TinyDiffusion/blob/master/Analysis.md) From 81cabd939002ae41c356efa82f4ce4122677eb30 Mon Sep 17 00:00:00 2001 From: Divyendu Dutta Date: Tue, 2 Sep 2025 21:26:20 +0200 Subject: [PATCH 6/6] [DOC] Fix formatting in Readme --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e9dba59..6b74d6d 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Before committing changes run `pre-commit run --all-files` or `pre-commit run -- ### Generating Benchmarks -Run +Execute ```bash notebooks/baseline_generation.ipynb ``` @@ -75,13 +75,13 @@ to benchmark the Pytorch version of Stable Diffusion's UNet from HuggingFace. Run -```python +```bash python tinydiffusion/src/onnx_export.py ``` to export the UNet to an ONNX graph. -Then run +Then execute ```bash notebooks/onnxruntime_generation.ipynb ``` @@ -90,7 +90,7 @@ to benchmark the ONNXRuntime version of UNet on GPU and CPU. ### Visualizing Once all the benchmarking results populated in `results/benchmarks/benchmark_results.csv`, run -```python +```bash python tinydiffusion/src/benchmark_visualizer.py ``` to generate the visualization plots for comparison.