# π ZigZag
[](https://github.com/pylint-dev/pylint)
**ZigZag** is a novel HW Architecture-Mapping Design Space Exploration (DSE) framework for Deep Learning (DL) accelerators. It bridges the gap between algorithmic DL decisions and their acceleration cost on specialized hardware, providing **fast and accurate HW cost estimation**. Through its advanced mapping engines, ZigZag automates the discovery of optimal mappings for complex DL computations on custom architectures.
### π [**Explore Documentation**](https://kuleuven-micas.github.io/zigzag/)
### π [**Start Tutorial**](https://github.com/KULeuven-MICAS/zigzag/tree/tutorial)
---
## β¨ Key Features
β **ONNX Integration**: Directly parse ONNX models for seamless compatibility with modern deep learning workflows.
β **Flexible Hardware Architecture**: Supports multi-dimensional (>2D) MAC arrays, advanced interconnection patterns, and high-level memory structures.
β **Enhanced Cost Models**: Includes detailed energy and latency analysis for memories with variable port structures through inferred spatial and temporal data sharing and reuse patterns.
β **Modular and Extensible**: Fully revamped structure with object-oriented paradigms to support user-friendly extensions and interfaces.
β **Integrated In-Memory Computing Support**: Seamlessly define digital and analog in-memory-computing (IMC) cores via an intuitive user interface.
β **Comprehensive Output Options**: Outputs results in YAML format, enabling further analysis and integration.
---
## π Installation
Visit the [Installation Guide](https://kuleuven-micas.github.io/zigzag/installation.html) for step-by-step instructions to set up ZigZag on your system.
---
## π Getting Started
Get up to speed with ZigZag using our resources:
- Check out the [Getting Started Guide](https://kuleuven-micas.github.io/zigzag/getting-started.html).
- Explore the [Jupyter Notebook Demo](https://github.com/ZigZag-Project/zigzag-demo) to see ZigZag in action.
---
## π§ Whatβs Next
We are continuously improving ZigZag to stay at the forefront of HW design space exploration. Hereβs what weβre working on:
- π§ **ONNX Operator Support**: Expanding compatibility for modern generative AI workloads.
- π **Novel Memory Models**: Integrating advanced memory models and compilers for better performance analysis.
- βοΈ **Automatic Hardware Generation**: Enabling end-to-end generation of hardware configurations.
- π **Enhanced Mapping Methods**: Developing more efficient and intelligent mapping techniques.
#### β Please consider starring this repository to stay up to date!
---
## π Publication Pointers
Learn more about the concepts behind ZigZag and its applications:
### The General Idea of ZigZag
- **[ZigZag: Enlarging Joint Architecture-Mapping Design Space Exploration for DNN Accelerators](https://ieeexplore.ieee.org/document/9360462)**
L. Mei, P. Houshmand, V. Jain, S. Giraldo, M. Verhelst
_IEEE Transactions on Computers_, vol. 70, no. 8, pp. 1160-1174, Aug. 2021.
### Advanced Features and Extensions
- **[Uniform Latency Model for DNN Accelerators](https://lirias.kuleuven.be/retrieve/661303)**
L. Mei, H. Liu, T. Wu, et al.
_DATE 2022_.
- **[LOMA: Fast Auto-Scheduling on DNN Accelerators](https://ieeexplore.ieee.org/document/9458493)**
A. Symons, L. Mei, M. Verhelst
_AICAS 2021_.
For more publications and detailed case studies, refer to the full list in our [Documentation](https://kuleuven-micas.github.io/zigzag/).
---
## π» Contributing
We welcome contributions! Feel free to fork the repository, submit pull requests, or open issues. Check our [Contributing Guidelines](CONTRIBUTING.md) for more details.
---
Raw data
{
"_id": null,
"home_page": null,
"name": "zigzag-dse",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "zigzag, dse, design-space-exploration, machine-learning, deep-learning, mapping",
"author": null,
"author_email": "Arne Symons <arne.symons@kuleuven.be>, Linyan Mei <linyan.mei@kuleuven.be>",
"download_url": "https://files.pythonhosted.org/packages/03/b4/df53025103ca734dcbe64b87a99e86870f716adda8f877773a95fe318266/zigzag_dse-3.8.3.tar.gz",
"platform": null,
"description": "# \ud83c\udf00 ZigZag \n[](https://github.com/pylint-dev/pylint) \n\n**ZigZag** is a novel HW Architecture-Mapping Design Space Exploration (DSE) framework for Deep Learning (DL) accelerators. It bridges the gap between algorithmic DL decisions and their acceleration cost on specialized hardware, providing **fast and accurate HW cost estimation**. Through its advanced mapping engines, ZigZag automates the discovery of optimal mappings for complex DL computations on custom architectures.\n\n### \ud83c\udf1f [**Explore Documentation**](https://kuleuven-micas.github.io/zigzag/) \n### \ud83d\udcd6 [**Start Tutorial**](https://github.com/KULeuven-MICAS/zigzag/tree/tutorial) \n\n---\n\n## \u2728 Key Features \n\n\u2714 **ONNX Integration**: Directly parse ONNX models for seamless compatibility with modern deep learning workflows. \n\u2714 **Flexible Hardware Architecture**: Supports multi-dimensional (>2D) MAC arrays, advanced interconnection patterns, and high-level memory structures. \n\u2714 **Enhanced Cost Models**: Includes detailed energy and latency analysis for memories with variable port structures through inferred spatial and temporal data sharing and reuse patterns. \n\u2714 **Modular and Extensible**: Fully revamped structure with object-oriented paradigms to support user-friendly extensions and interfaces. \n\u2714 **Integrated In-Memory Computing Support**: Seamlessly define digital and analog in-memory-computing (IMC) cores via an intuitive user interface. \n\u2714 **Comprehensive Output Options**: Outputs results in YAML format, enabling further analysis and integration.\n\n---\n\n## \ud83d\ude80 Installation \n\nVisit the [Installation Guide](https://kuleuven-micas.github.io/zigzag/installation.html) for step-by-step instructions to set up ZigZag on your system.\n\n---\n\n## \ud83d\udcd6 Getting Started \n\nGet up to speed with ZigZag using our resources:\n- Check out the [Getting Started Guide](https://kuleuven-micas.github.io/zigzag/getting-started.html).\n- Explore the [Jupyter Notebook Demo](https://github.com/ZigZag-Project/zigzag-demo) to see ZigZag in action.\n\n---\n\n## \ud83d\udd27 What\u2019s Next \n\nWe are continuously improving ZigZag to stay at the forefront of HW design space exploration. Here\u2019s what we\u2019re working on: \n\n- \ud83e\udde0 **ONNX Operator Support**: Expanding compatibility for modern generative AI workloads. \n- \ud83d\udcc2 **Novel Memory Models**: Integrating advanced memory models and compilers for better performance analysis. \n- \u2699\ufe0f **Automatic Hardware Generation**: Enabling end-to-end generation of hardware configurations. \n- \ud83d\ude80 **Enhanced Mapping Methods**: Developing more efficient and intelligent mapping techniques. \n\n#### \u2b50 Please consider starring this repository to stay up to date! \n\n---\n\n## \ud83d\udcda Publication Pointers \n\nLearn more about the concepts behind ZigZag and its applications:\n\n### The General Idea of ZigZag \n- **[ZigZag: Enlarging Joint Architecture-Mapping Design Space Exploration for DNN Accelerators](https://ieeexplore.ieee.org/document/9360462)** \n L. Mei, P. Houshmand, V. Jain, S. Giraldo, M. Verhelst \n _IEEE Transactions on Computers_, vol. 70, no. 8, pp. 1160-1174, Aug. 2021. \n\n### Advanced Features and Extensions \n- **[Uniform Latency Model for DNN Accelerators](https://lirias.kuleuven.be/retrieve/661303)** \n L. Mei, H. Liu, T. Wu, et al. \n _DATE 2022_. \n- **[LOMA: Fast Auto-Scheduling on DNN Accelerators](https://ieeexplore.ieee.org/document/9458493)** \n A. Symons, L. Mei, M. Verhelst \n _AICAS 2021_. \n\nFor more publications and detailed case studies, refer to the full list in our [Documentation](https://kuleuven-micas.github.io/zigzag/).\n\n---\n\n## \ud83d\udcbb Contributing \n\nWe welcome contributions! Feel free to fork the repository, submit pull requests, or open issues. Check our [Contributing Guidelines](CONTRIBUTING.md) for more details.\n\n---\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "ZigZag - Deep Learning Hardware Design Space Exploration",
"version": "3.8.3",
"project_urls": {
"Homepage": "https://github.com/KULeuven-MICAS/zigzag"
},
"split_keywords": [
"zigzag",
" dse",
" design-space-exploration",
" machine-learning",
" deep-learning",
" mapping"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cd25660096a6056c9935f18a58d03711ec1c395519a1a281d5c8161511741feb",
"md5": "ef2f29b5d2028fe163b7b7df5821ba3b",
"sha256": "7adb8797d0b443f73aec9497147b8112569c130d94dec38612d7c7d72c6f5bc5"
},
"downloads": -1,
"filename": "zigzag_dse-3.8.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ef2f29b5d2028fe163b7b7df5821ba3b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 3047527,
"upload_time": "2025-07-25T10:33:44",
"upload_time_iso_8601": "2025-07-25T10:33:44.457565Z",
"url": "https://files.pythonhosted.org/packages/cd/25/660096a6056c9935f18a58d03711ec1c395519a1a281d5c8161511741feb/zigzag_dse-3.8.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "03b4df53025103ca734dcbe64b87a99e86870f716adda8f877773a95fe318266",
"md5": "e59d41b4205118d5fe681089ba517cd6",
"sha256": "97813d314fac74bbf7fb1db5db1e3de456f99ceef65ecfec83e7f118c63f3a31"
},
"downloads": -1,
"filename": "zigzag_dse-3.8.3.tar.gz",
"has_sig": false,
"md5_digest": "e59d41b4205118d5fe681089ba517cd6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 2917659,
"upload_time": "2025-07-25T10:33:46",
"upload_time_iso_8601": "2025-07-25T10:33:46.337337Z",
"url": "https://files.pythonhosted.org/packages/03/b4/df53025103ca734dcbe64b87a99e86870f716adda8f877773a95fe318266/zigzag_dse-3.8.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-25 10:33:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "KULeuven-MICAS",
"github_project": "zigzag",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "networkx",
"specs": []
},
{
"name": "sympy",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "onnx",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "multiprocessing_on_dill",
"specs": []
},
{
"name": "pyyaml",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "typeguard",
"specs": []
},
{
"name": "cerberus",
"specs": []
},
{
"name": "seaborn",
"specs": []
},
{
"name": "pre-commit",
"specs": []
}
],
"lcname": "zigzag-dse"
}