Zigzag
HW Architecture-Mapping Design Space Exploration Framework for Deep Learning Accelerators
Install / Use
/learn @KULeuven-MICAS/ZigzagREADME
🌀 ZigZag
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
📖 Start 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 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.
- Explore the Jupyter Notebook 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
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
L. Mei, H. Liu, T. Wu, et al.
DATE 2022. - LOMA: Fast Auto-Scheduling on DNN Accelerators
A. Symons, L. Mei, M. Verhelst
AICAS 2021.
For more publications and detailed case studies, refer to the full list in our Documentation.
💻 Contributing
We welcome contributions! Feel free to fork the repository, submit pull requests, or open issues. Check our Contributing Guidelines for more details.
Related Skills
diffs
341.8kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.9kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
ui-ux-designer
Use this agent when you need to design, implement, or improve user interface components and user experience flows. Examples include: creating new pages or components, improving existing UI layouts, implementing responsive designs, optimizing user interactions, building forms or dashboards, analyzing existing UI through browser snapshots, or when you need to ensure UI components follow design system standards and shadcn/ui best practices.\n\n<example>\nContext: User needs to create a new dashboard page for team management.\nuser: "I need to create a team management dashboard where users can view team members, invite new members, and manage roles"\nassistant: "I'll use the ui-ux-designer agent to design and implement this dashboard with proper UX considerations, using shadcn/ui components and our design system tokens."\n</example>\n\n<example>\nContext: User wants to improve the user experience of an existing form.\nuser: "The signup form feels clunky and users are dropping off. Can you improve it?"\nassistant: "Let me use the ui-ux-designer agent to analyze the current form UX and implement improvements using our design system and shadcn/ui components."\n</example>\n\n<example>\nContext: User wants to evaluate and improve existing UI.\nuser: "Can you take a look at our pricing page and see how we can make it more appealing and user-friendly?"\nassistant: "I'll use the ui-ux-designer agent to take a snapshot of the current pricing page, analyze the UX against Notion-inspired design principles, and implement improvements using our design tokens."\n</example>
