From 4376ddf1b0feddd0ed8419b26e86a34907706a39 Mon Sep 17 00:00:00 2001 From: asyms <34397549+asyms@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:36:24 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20KULeuven?= =?UTF-8?q?-MICAS/zigzag@34b476de38c7c8e7c613c3c0dc5601331ca53205=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 402592 -> 402084 bytes .doctrees/installation.doctree | Bin 20494 -> 20118 bytes _sources/installation.rst.txt | 8 +++++--- installation.html | 4 ++-- searchindex.js | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 3a15f5653a4a07b188cb1cf7e8b1e734ad23118c..4d04467999c64e98c7a8a92017af242a12e01438 100644 GIT binary patch delta 36634 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 delta 36669 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 pZwj3(!T(Ezxj=8{JS71&6>lBV@ zrig)dGDajm&_1g>Km)C-p_O%N0j29wX|8k-1XW-sum(RYnLAnP&=E7!8a!3+N|buhIxS2}Y0W1}5OR zdR+-!o+Ydi+C4e&rN=$KqZdH#{C3vRf6x3riOucLyY&Zoms!D~no8mb&I$ewiML3+ zLE<=#+@mCHB(g~yByoVm%cSxm2?IIMlc>iGa5o7?%WIfgewdbTllYUCm+8X8hK>GU zpnKQ7n*-bE$CpzeArVAK1P~J7Ap!iT0DV*dh6Gqh0EGldNC1R{^H7hPN8X5$Y7}%- zF1V;6K}7A-SXea{%P^h@y$Txi&%q5uNG9eCwi5+4E4bxKesXp%E>kYv8`>DF-Py{5?Q4?9->=HQ$3ce@JmqC{7c|{;+aa eV0+*${6`Jzx-m}?ei#lc&Q2aRUjgqgUivRD1hKmS delta 3401 zcma)8YfxL)5ze`~R~88I5Fj1``HF`@2qZ9XYykp1v5mlx*iPcKaWKff+|(dI%9Jv0 zY$t7_My)4ZC4ZX6##1}VIIosY-^9Z(V>?OH;<}BSHcf+vCT^#bvD;~6A8z9pSy>>@nRdYBAf7j|x#9uLUFLu0TaG)a|; zDRgF4=hS#|R(0~!1EW6KKQ8+fuM93BA5LlpSu5PsR7uT>S#g3a%CKE9K%ck?W`s0Y zF`40lXlJ|0242>QhC!uB(I~}AwPNYj&DBVgj2(bkPc``T+LTlb!VO^AWPuO0b~Y7r z^u;+E;QkHYWXEED8R*CL-0wbJ1^Zge??jxRac)8P5@Rhek-Cq)6vKTEZl!K#=fEv) zma;L_Gccpy!(N5U`eDPxRjeky?@s$Idj~cejta_kSZJsKUts~P80w_=Q2h=RriW^j z4+Dx_`9~;q(tFT5=^Y#Pj)Z#|sRIYFtjrPqLikwtNVt-FP|89cIx|DgIfMUBui@=S zkF(H|F^`DriubV+SjeuSN~;z)k(n!47+6aia*A-Hkll70T3@n7LQ7DawH2zedc`(W zAd#Xn<*M>4<*lId>yR*|gq63Cgb8Pqo`uJNPFG2G9Eg6!!ZFN!kTpYPJ1_5LcM}LL zf!NJphqc+b8#6>OubRIPojE(13bTf~R8heigq6RCEZ{a;vUpCc75Z|#w_u>84H|Q8 zxu2sADx8{v|EORT|Fx1m0{$RNZ7J>yFu3foq>vp)2@ca;S*NgQ@rRrZPny~d@$F*7 zws5l-2{;VoiRI^Fh*_kcCe$;-Y7PZc@6hREh1GbT+XvXX1bI{OvxG(+yYy=3j}jR&L3zak?A7znfD8e5u(@_>UmDo zyh>F4aV#SNjvR@#D1+c(UkDijWYtx3gnD?TxRdEYE^SP+W1tNJ&wdFyEngBVaPfci zf`j`}FPN~(amm+d2VvVHY25H? z$zJ9rLfU#n;}WO^(&8(FT~INsK8-a}Pm(xA)zYf7^#3#pvc)D*la9R-(>kKZ9-67D z>L2%etE$@M9S3C^ctf9=^bUBa$ zQzPMx7b))ArB_ezidE7LdMrZT6x#L4S=*AcCQRbE*c33K_$~0frdy-V@|?P8PMp&l z1@$rBB~5Xaf!~$3CET0}*i_b)FtZI1DC=iBK4`C%H4DF>$hDc5V~P2dYUTRr@^0bx z5&gA9{Z{x_`QL=U;8|{I$ZSUhQ9Yi?C1|VIAu>&*S4%&6Zgr9`T&Vb=kfnj+l>_Et z^jj^wX2>@hR~st~I*K9HW=q*fHfGhVp;m&E%@XXl$*dZV+PVu0NEdmYde9~dmx##} zY63%LvpzPu)hw{qHcDi24eqWQN-n@wUV!(jYSVrNzVk ziNnsGPPD9Xwy$S-#OY!$CtBWc)?zZE+=n?P;NIH4WIi4a`pw!_b|nhBd?^Nlx5b@U z%5^5~!Mc8?U%Ns1;H%4rtD7s?pD2)4p|-sao9lbobq-+O^cD6SxSfa8X4sM7hrSKu1^t+H`|+p zg*6!S(9!XE<9t%3)I#`Khb>)3eo;c|FG1T`E?lMJ6=^C}J9s+FqL=jw$4Hkoe`I_( zthS(ICz;sS|963@~*c7}vRLLl)7iDM*QA(J1GuuuRqiCtI% z)kDHW%WM*F(DF4B>9o|N2!v9`h7NoE4^8{LQ}jiu5|AJV5##`ZJb92Oev~JDlqU@G zWI>)N$dd$lf*=nb3@BELMvRm+PDdH!TofNCqMYC?lz&Dj49*Y{&Vin2^#+MQk{Bai z3JK1O9+?O)dM+ZoXktcq(SYQ<)FpU(=U>@=_<8T^!uKS6V;mZ@`W;yE$ifWyF+xiFp4Jal2)Bpeg diff --git a/_sources/installation.rst.txt b/_sources/installation.rst.txt index 173cd600..a6a727f2 100644 --- a/_sources/installation.rst.txt +++ b/_sources/installation.rst.txt @@ -2,7 +2,11 @@ Installation ============ -This guide provides step-by-step instructions for setting up ZigZag. If you're already familiar with Python development environments and IDEs, you can skip to the **Installing ZigZag** section below. +This guide provides step-by-step instructions for setting up ZigZag. + +.. note:: + + If you're already familiar with Python development environments and IDEs, skip to the **Installing ZigZag** section below. Environment =========== @@ -51,8 +55,6 @@ Windows 3. **Install VS Code (Optional)**: Download and install VS Code from `here `_. Add the Python extension for an enhanced development experience. -**Note**: If you already have your development environment set up, you can skip to the **Installing ZigZag** section below. - Installing ZigZag ================= diff --git a/installation.html b/installation.html index dd047f95..dccd9cc1 100644 --- a/installation.html +++ b/installation.html @@ -1,7 +1,7 @@ - Installation — ZigZag 2.0.0 documentation Skip to content

Installation

This guide provides step-by-step instructions for setting up ZigZag. If you’re already familiar with Python development environments and IDEs, you can skip to the Installing ZigZag section below.

Environment

To use ZigZag effectively, we recommend setting up a Python virtual environment and optionally using an IDE like VS Code. Of course, you may use any IDE of your choice.

Basic Setup

Follow these steps to prepare your system for Python development:

Linux/Mac

  1. Install Python 3.11 or newer: Ensure you have Python installed. You can check with:

    python3 --version
    +                          Installation — ZigZag 2.0.0 documentation                     Skip to content  

    Installation

    This guide provides step-by-step instructions for setting up ZigZag.

    Note

    If you’re already familiar with Python development environments and IDEs, skip to the Installing ZigZag section below.

    Environment

    To use ZigZag effectively, we recommend setting up a Python virtual environment and optionally using an IDE like VS Code. Of course, you may use any IDE of your choice.

    Basic Setup

    Follow these steps to prepare your system for Python development:

    Linux/Mac

    1. Install Python 3.11 or newer: Ensure you have Python installed. You can check with:

      python3 --version
       

      Install Python if necessary via your package manager or from the official website.

    2. Set up a virtual environment:

      python3 -m venv zigzag_env
       source zigzag_env/bin/activate
       
    3. Install VS Code (Optional): Download and install VS Code from here. Add the Python extension for an enhanced development experience.

    Windows

    1. Install Python 3.11 or newer: Download Python from the official website. Ensure you check the box to “Add Python to PATH” during installation.

    2. Set up a virtual environment: Open Command Prompt or PowerShell and run:

      python -m venv zigzag_env
       zigzag_env\Scripts\activate
      -
    3. Install VS Code (Optional): Download and install VS Code from here. Add the Python extension for an enhanced development experience.

    Note: If you already have your development environment set up, you can skip to the Installing ZigZag section below.

    Installing ZigZag

    Installing as a Package

    If you’re an end user and don’t need to modify ZigZag’s internals, you can install it directly via pip:

    pip install zigzag-dse
    +
  2. Install VS Code (Optional): Download and install VS Code from here. Add the Python extension for an enhanced development experience.

Installing ZigZag

Installing as a Package

If you’re an end user and don’t need to modify ZigZag’s internals, you can install it directly via pip:

pip install zigzag-dse
 

After installation, you can explore the ZigZag API documentation to understand how to use the framework.

Manual Clone

For users interested in adding custom functionality or contributing to ZigZag, follow these steps:

Prerequisites

Ensure you have the following installed: - git: For cloning the repository. - pip: For installing the required packages. - python>=3.11: For running the framework.

Installation Steps

  1. Clone the repository: Use one of the following commands: .. code-block:: sh

    git clone git@github.com:KULeuven-MICAS/zigzag.git

    Or: .. code-block:: sh

  2. Install dependencies: Navigate to the cloned repository folder and install the required packages: .. code-block:: sh

    cd zigzag pip install -r requirements.txt

    Alternatively, an Anaconda spec file is also provided if you prefer to use conda.

  3. Run ZigZag: You can now execute ZigZag through the main file with the provided arguments. For more details, see the Getting Started documentation.

\ No newline at end of file diff --git a/searchindex.js b/searchindex.js index add9d421..0b5fe1bc 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "code-documentation", "contribute", "future", "getting-started", "hardware", "index", "installation", "mapping", "outputs", "publications", "stages", "user-guide", "visualization", "workload"], "filenames": ["api.rst", "code-documentation.rst", "contribute.rst", "future.rst", "getting-started.rst", "hardware.rst", "index.rst", "installation.rst", "mapping.rst", "outputs.rst", "publications.rst", "stages.rst", "user-guide.rst", "visualization.rst", "workload.rst"], "titles": ["ZigZag API", "Code Documentation", "Contribute", "Future changes", "Getting Started", "Hardware Architecture", "Welcome to ZigZag\u2019s documentation!", "Installation", "Mapping", "Outputs", "Publications", "Stages", "User Guide", "Visualization", "Workload"], "terms": {"onc": 0, "i": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14], "avail": [0, 2, 5], "your": [0, 2, 7, 8], "python": [0, 2, 4, 7], "path": [0, 7, 14], "you": [0, 2, 3, 4, 5, 7, 8, 9, 11, 14], "can": [0, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14], "import": [0, 2, 5, 13, 14], "ani": [0, 2, 5, 7, 11], "file": [0, 2, 4, 5, 7, 8, 9, 11, 14], "from": [0, 2, 5, 7, 11, 13, 14], "thi": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14], "function": [0, 2, 4, 7, 11, 13], "take": [0, 3, 5, 11, 14], "an": [0, 2, 4, 5, 7, 8, 9, 11], "workload": [0, 4, 6, 8, 11, 12], "hardwar": [0, 3, 4, 6, 8, 12, 14], "architectur": [0, 4, 6, 8, 10, 11, 12], "map": [0, 4, 5, 6, 9, 12, 14], "return": [0, 9, 11], "perform": [0, 5, 10], "execut": [0, 2, 4, 5, 7, 8, 11], "model": [0, 3, 4, 6], "": [0, 2, 3, 4, 5, 7, 10, 11, 13], "layer": [0, 4, 5, 6, 8, 9, 11], "under": [0, 2, 4, 8], "given": [0, 4, 8, 11], "constraint": [0, 4], "energi": [0, 3, 4, 5, 9, 10, 11], "latenc": [0, 3, 4, 5, 6, 9, 11], "cme": [0, 11, 13], "acceler": [0, 4, 6, 8, 9, 10, 11], "opt": 0, "dump_fold": [0, 4, 11], "output": [0, 4, 5, 6, 11, 12, 13, 14], "datetim": 0, "json": [0, 9, 11], "pickle_filenam": [0, 11, 13], "list_of_cm": [0, 13], "pickl": [0, 11, 13], "The": [0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14], "input": [0, 4, 5, 8, 9, 14], "ar": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14], "A": [0, 5, 6, 8, 10, 14], "neural": [0, 4, 5, 10, 14], "network": [0, 4, 5, 10, 14], "defin": [0, 4, 5, 9, 10, 11, 14], "onnx": [0, 3, 4, 8, 11], "format": [0, 1, 2, 9], "own": [0, 11, 14], "high": [0, 5, 10], "level": [0, 5, 11, 13], "descript": [0, 8, 11], "specifi": [0, 5, 9], "core": [0, 4, 6, 8, 11], "alloc": [0, 4, 5, 8, 10, 11, 13], "spatial": [0, 4, 5, 8, 9, 10, 13, 14], "option": [0, 5, 7], "tempor": [0, 4, 6, 8, 9], "order": [0, 2, 4, 5, 8, 10, 11, 13], "memori": [0, 3, 4, 6, 8, 9, 10, 11, 13, 14], "operand": [0, 5, 8, 11, 13, 14], "link": [0, 1, 5, 8, 14], "optim": [0, 4, 6, 10], "target": [0, 2], "It": [0, 4, 9, 11, 14], "edp": [0, 11], "delai": 0, "product": 0, "name": [0, 4, 5, 8, 14], "result": [0, 6, 9, 13], "folder": [0, 2, 7, 11], "which": [0, 4, 5, 8, 9, 11, 13, 14], "includ": [0, 2, 5, 9, 14], "all": [0, 2, 4, 5, 9, 11, 14], "detail": [0, 2, 6, 7, 11], "metadata": 0, "analyz": [0, 6, 10], "debug": 0, "number": [0, 5, 9, 14], "indic": [0, 14], "overal": 0, "consum": [0, 5], "run": [0, 2, 6, 7, 8, 11, 13], "user": [0, 3, 4, 6, 7, 11], "wai": [0, 1, 2, 4, 5, 9, 11, 13, 14], "cycl": [0, 5], "count": 0, "collect": 0, "cost": [0, 3, 4, 5, 6, 14], "evalu": [0, 5, 11], "stand": 0, "we": [0, 2, 3, 4, 5, 7, 11], "demonstr": [0, 13], "how": [0, 2, 4, 5, 7, 8, 9, 11, 13], "us": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14], "multipl": [0, 5, 6, 10, 11, 13, 14], "demo": 0, "comment": [1, 2], "within": [1, 5, 8, 11, 14], "sourc": [1, 2, 7], "zigzag": [1, 4, 5, 8, 9, 11, 12, 13, 14], "framework": [1, 2, 4, 6, 7, 8, 10, 11, 12, 14], "support": [1, 3, 4, 5, 6, 8, 11], "auto": [1, 10], "doxygen": 1, "automat": [1, 4, 5, 6, 8, 11, 13, 14], "updat": [1, 2, 3, 11], "soon": 1, "somebodi": 1, "push": 1, "someth": 1, "master": 1, "branch": [1, 4], "github": [1, 2, 7, 10], "repo": [1, 14], "project": [1, 6, 10], "follow": [1, 2, 4, 5, 7, 8, 9, 11, 12, 14], "access": [1, 3, 5, 11], "latest": 1, "version": [1, 6, 7, 11], "when": [2, 8, 11, 13, 14], "pleas": [2, 9, 11], "consid": [2, 11], "googl": 2, "style": 2, "guid": [2, 3, 6, 7], "docstr": 2, "class": [2, 11], "method": [2, 5, 9], "exampl": [2, 4, 8, 9, 11, 13, 14], "found": [2, 11, 14], "throughout": 2, "here": [2, 3, 4, 7, 10, 13, 14], "accordingli": 2, "pylintrc": 2, "linter": 2, "configur": [2, 10], "pre": 2, "commit": 2, "config": [2, 11], "yaml": [2, 4, 14], "check": [2, 7, 11], "In": [2, 4, 5, 6, 9, 11], "packag": 2, "call": [2, 4, 13], "bumpver": 2, "twine": 2, "These": [2, 11], "instal": [2, 6], "pip": [2, 7], "pytest": 2, "typeguard": 2, "first": [2, 5, 6, 11], "pull": 2, "make": [2, 3, 5, 9], "sure": 2, "have": [2, 4, 5, 7, 11, 14], "remot": 2, "chang": [2, 5, 6, 11, 14], "merg": 2, "conflict": 2, "lint": 2, "type": [2, 5, 8, 12, 14], "m": [2, 5, 7, 10], "ruff": 2, "select": 2, "e9": 2, "f63": 2, "f7": 2, "f82": 2, "py37": 2, "test": [2, 10], "whether": [2, 11], "been": [2, 4], "broken": 2, "main": [2, 4, 5, 7, 9], "final": [2, 11, 14], "command": [2, 4, 7, 14], "publish": 2, "patch": 2, "upload": 2, "dist": 2, "zigzag_ds": 2, "x": [2, 5], "y": [2, 5], "z": [2, 5], "whl": 2, "dse": [2, 6, 7], "tar": 2, "gz": 2, "provid": [2, 4, 5, 6, 7, 8, 11, 12], "sever": 2, "differ": [2, 4, 5, 6, 9, 11, 14], "There": [2, 5, 9], "mani": [2, 5], "public": [2, 6], "relat": 2, "page": [2, 6], "allow": [2, 5, 8, 11], "everyon": 2, "get": [2, 6, 7], "familiar": [2, 7], "more": [2, 3, 4, 5, 7, 11, 12, 14], "about": [2, 9, 11], "implement": 2, "ad": [2, 7, 8, 14], "mandatori": 2, "what": [2, 5, 9, 11], "doe": [2, 5], "achiev": [2, 5], "newli": 2, "explicit": 2, "resid": [2, 11, 13], "doc": 2, "restructuredtext": 2, "rst": 2, "decid": 2, "would": [2, 14], "best": [2, 11], "fit": 2, "exist": [2, 11], "one": [2, 4, 5, 7, 11], "If": [2, 5, 7, 8, 9, 11, 14], "creat": [2, 8], "lower": [2, 5, 11], "case": [2, 3, 6], "letter": [2, 14], "hyphen": 2, "between": [2, 6, 14], "word": [2, 5], "after": [2, 5, 7, 11], "need": [2, 4, 5, 7, 8, 11, 14], "add": [2, 3, 7, 14], "toctre": 2, "index": [2, 6], "same": [2, 5, 11], "webpag": 2, "sphinx": 2, "should": [2, 4, 5, 8, 9, 14], "both": [2, 3, 5], "press": 2, "theme": 2, "easi": [2, 9], "through": [2, 4, 5, 6, 7, 8, 10, 11, 14], "requir": [2, 4, 5, 7, 8, 9, 11, 14], "txt": [2, 4, 7], "cd": [2, 7], "r": [2, 5, 7], "simpli": [2, 11], "b": [2, 5, 14], "html": 2, "entri": [2, 8, 14], "point": [2, 6], "guidlin": 2, "paramet": [2, 5, 11], "constructor": 2, "download": [2, 7], "describ": [2, 13, 14], "successfulli": 2, "done": [2, 4], "either": [2, 5], "gui": 2, "conf": 2, "find": [3, 4, 6, 11], "plan": 3, "oper": [3, 8, 11], "account": [3, 11, 14], "bandwidth": [3, 5], "loma": [3, 4, 10, 11], "memoryalloc": 3, "besid": [3, 4, 5, 11], "capac": [3, 5], "lpf": 3, "limit": [3, 10], "visual": [3, 6, 12], "tutori": 3, "remak": 3, "tabl": [3, 5], "without": 3, "df": [3, 5], "stage": [3, 4, 6, 9, 12], "stack": 3, "combin": [3, 8, 9, 11], "common": [3, 5], "versatil": 4, "tool": 4, "estim": [4, 6], "dl": [4, 6], "design": [4, 5, 6, 11], "multitud": 4, "set": [4, 7, 8, 11, 14], "As": [4, 11], "step": [4, 11], "onto": [4, 6, 8], "recommend": [4, 7, 14], "lab": [4, 5], "them": [4, 5, 11], "repositori": [4, 5, 7], "lab1": 4, "altern": [4, 5, 7, 14], "also": [4, 5, 7, 8, 9, 11, 14], "go": [4, 5, 13], "alexnet": 4, "ha": [4, 5, 11, 12, 14], "shape": 4, "infer": [4, 5], "mean": [4, 5, 11], "tensor": [4, 5, 14], "intermedi": [4, 5, 14], "inform": [4, 5, 8, 9, 12, 14], "know": [4, 5, 8, 9, 14], "correctli": [4, 14], "tpu": [4, 5], "like": [4, 7, 11, 14], "tpu_lik": 4, "must": [4, 5, 8, 11, 14], "suggest": 4, "resourc": [4, 6, 8], "gener": [4, 5, 6, 8, 9, 11, 12, 13], "pars": [4, 11, 14], "contain": [4, 8, 14], "program": 4, "flow": [4, 11], "document": [4, 7, 11, 12], "py": [4, 8, 11, 13], "resnet18": [4, 8, 14], "below": [4, 7, 8, 11], "see": [4, 7, 9, 14], "termin": [4, 13], "other": [4, 5, 11, 14], "directori": [4, 14], "directli": [4, 7], "runnabl": 4, "variabl": 4, "thu": 4, "doesn": [4, 14], "t": [4, 5, 7, 8, 10, 14], "line": 4, "argument": [4, 7, 11], "section": [4, 5, 7, 9, 11], "definit": [4, 5, 8, 9, 11], "salsa": [4, 11], "search": [4, 6], "engin": [4, 6, 11], "util": [4, 9, 13], "than": [4, 11], "temporal_mapping_search_engin": 4, "api": [4, 6, 7, 13], "dure": [4, 7], "save": [4, 9], "total": [4, 5, 11], "five": 4, "each": [4, 5, 9, 11, 13, 14], "node": [4, 8, 9, 11], "onnxmodelparserstag": [4, 8, 11, 14], "wa": 4, "minimallatencystag": [4, 11], "refer": [4, 14], "chosen": [4, 11], "loop": [4, 8, 10, 11, 13, 14], "loop_ord": 4, "well": [4, 5], "graph": [4, 11, 14], "hierarchi": [4, 8, 9, 11, 13], "bar": [4, 13], "plot": [4, 13], "introduc": 5, "concept": [5, 11], "known": 5, "start": [5, 6, 7, 11], "smallest": 5, "build": [5, 12, 14], "block": [5, 7, 12, 13], "work": [5, 9], "our": [5, 11], "up": [5, 7, 11], "toward": [5, 10], "summat": 5, "accumul": 5, "across": [5, 10, 11], "data": [5, 9, 11], "activ": [5, 7, 14], "train": 5, "weight": [5, 14], "typic": [5, 8, 14], "multipli": 5, "two": [5, 9], "element": [5, 11], "object": [5, 9, 11, 13, 14], "attribut": [5, 9, 14], "singl": [5, 8, 11], "e": [5, 8, 10, 11, 13], "g": [5, 8, 11, 13], "area": [5, 10], "overhead": 5, "inferenc": 5, "million": 5, "parallel": [5, 8], "significantli": 5, "speed": 5, "comput": [5, 6, 8, 10], "increas": 5, "effici": 5, "cover": 5, "later": [5, 11], "dimens": [5, 11, 14], "size": [5, 11, 14], "explain": [5, 9, 11], "introduct": 5, "operational_unit": 5, "built": 5, "d1": [5, 8, 11], "d2": [5, 8], "valu": [5, 8, 11, 14], "being": [5, 11], "correspond": [5, 8, 11], "along": 5, "store": 5, "attach": 5, "hierarch": 5, "fashion": 5, "big": 5, "term": 5, "write": [5, 8], "read": [5, 11], "its": [5, 9, 11], "port": 5, "bit": [5, 14], "r_bw": 5, "w_bw": 5, "per": 5, "r_cost": 5, "w_cost": 5, "r_port": 5, "w_port": 5, "rw_port": 5, "address": 5, "receiv": [5, 11], "For": [5, 7, 11, 13], "now": [5, 7], "assum": [5, 11, 14], "1": [5, 8, 10], "prefetch": 5, "behavior": 5, "thank": 5, "determinist": 5, "dataflow": [5, 10], "min_r_granular": 5, "min_w_granular": 5, "minim": [5, 11], "granular": 5, "better": 5, "half": 5, "quarter": 5, "pattern": [5, 11], "wordlength": 5, "256": 5, "100": 5, "128": 5, "onli": [5, 8, 9, 11, 14], "50": 5, "spec": [5, 7], "encod": [5, 8], "respect": [5, 9], "interconnect": [5, 11], "construct": 5, "base": [5, 8, 10, 11], "lowest": [5, 11], "To": [5, 7, 11, 14], "connect": [5, 11], "anoth": [5, 11], "decoupl": 5, "algorithm": [5, 6, 8, 10, 14], "side": 5, "oppos": 5, "w": [5, 8, 10, 13], "think": [5, 11], "virtual": [5, 7], "actual": 5, "memory_operand_link": [5, 8], "similarli": 5, "unrol": 5, "form": 5, "where": [5, 11, 13, 14], "accompani": 5, "served_dimens": 5, "serv": [5, 11], "hot": 5, "tupl": [5, 11], "2": [5, 8], "3": [5, 7, 13], "4": [5, 10, 11], "four": 5, "empti": [5, 8], "12": 5, "lastli": 5, "assign": 5, "movement": 5, "possibl": [5, 14], "fh": 5, "th": 5, "low": 5, "fl": 5, "tl": 5, "higher": [5, 11], "written": 5, "current": [5, 9, 14], "out": 5, "At": 5, "time": [5, 8, 11], "manual": [5, 8, 11], "syntax": 5, "port_typ": 5, "_port_": 5, "port_numb": 5, "rw": 5, "equal": 5, "default": [5, 8, 11], "intern": [5, 7, 10, 11], "memoryhierarchi": 5, "extend": [5, 14], "networkx": 5, "digraph": 5, "so": [5, 11, 14], "togeth": [5, 8], "preserv": 5, "compat": 5, "stream": 5, "wrap": 5, "5": 5, "dnn": [5, 10], "meta": 5, "prototyp": 5, "edg": [5, 14], "ascend": 5, "tesla": 5, "npu": 5, "depth": [5, 6], "schedul": [5, 6, 8, 11], "research": 5, "fair": 5, "relev": [5, 9], "comparison": 5, "normal": 5, "1024": [5, 14], "mac": 5, "maxim": 5, "2mb": 5, "global": 5, "buffer": 5, "gb": 5, "kept": 5, "local": 5, "shown": 5, "idx": 5, "7": [5, 8, 13], "9": 5, "variant": 5, "everi": [5, 8], "chip": 5, "denot": 5, "end": [5, 7, 11], "6": [5, 10], "8": [5, 10, 11], "10": [5, 10], "k": [5, 8, 10, 11, 13, 14], "channel": [5, 14], "c": [5, 8, 11, 13, 14], "ox": [5, 8, 13, 14], "oi": [5, 8, 13, 14], "featur": 5, "fx": [5, 8, 13, 14], "fy": [5, 8, 13, 14], "h": [5, 10], "sumbul": [5, 10], "f": [5, 13], "wu": [5, 10], "li": 5, "sarwar": 5, "koven": 5, "murphi": 5, "trotzki": 5, "cai": 5, "ansari": 5, "d": [5, 10], "morri": 5, "liu": [5, 10], "kim": 5, "beign": [5, 10], "system": [5, 7, 10, 11], "integr": [5, 10], "vr": 5, "custom": [5, 7, 8, 14], "power": 5, "7nm": 5, "technologi": 5, "codec": 5, "avatar": 5, "2022": [5, 10], "ieee": [5, 10], "circuit": [5, 10], "confer": [5, 10], "cicc": 5, "pp": [5, 10], "01": 5, "08": 5, "n": [5, 10], "p": [5, 10], "jouppi": 5, "young": 5, "patil": 5, "patterson": 5, "agraw": 5, "bajwa": 5, "bate": 5, "bhatia": 5, "boden": 5, "borcher": 5, "boyl": 5, "l": [5, 10], "cantin": 5, "chao": 5, "clark": 5, "j": 5, "coriel": 5, "dalei": 5, "dau": 5, "dean": 5, "gelb": 5, "v": [5, 7, 10], "ghaemmaghami": 5, "gottipati": 5, "gulland": 5, "hagmann": 5, "ho": 5, "hogberg": 5, "hu": 5, "hundt": 5, "hurt": 5, "ibarz": 5, "jaffei": 5, "jaworski": 5, "kaplan": 5, "khaitan": 5, "killebrew": 5, "koch": 5, "kumar": 5, "laci": 5, "laudon": 5, "law": 5, "le": 5, "leari": 5, "luck": 5, "lundin": 5, "mackean": 5, "maggior": 5, "mahoni": 5, "miller": 5, "nagarajan": 5, "narayanaswami": 5, "ni": 5, "nix": 5, "norri": 5, "omernick": 5, "penukonda": 5, "phelp": 5, "ross": 5, "salek": 5, "samadiani": 5, "severn": 5, "sizikov": 5, "snelham": 5, "souter": 5, "steinberg": 5, "swing": 5, "tan": 5, "thorson": 5, "tian": 5, "toma": 5, "tuttl": 5, "vasudevan": 5, "walter": 5, "wang": 5, "wilcox": 5, "yoon": 5, "datacent": 5, "analysi": 5, "process": [5, 11], "sigarch": 5, "archit": 5, "new": [5, 6, 11], "vol": [5, 10], "45": 5, "jun": 5, "2017": 5, "yazdanbakhsh": 5, "seshadri": 5, "akin": 5, "convolut": [5, 8, 14], "arxiv": [5, 10], "print": [5, 10, 13], "2102": 5, "10423": 5, "feb": 5, "2021": [5, 10], "liao": 5, "tu": 5, "xia": 5, "zhou": 5, "yuan": 5, "scalabl": 5, "unifi": 5, "ubiquit": 5, "deep": [5, 6, 10], "industri": 5, "track": 5, "paper": [5, 10, 14], "symposium": [5, 10], "hpca": [5, 10], "789": 5, "801": 5, "talp": 5, "sarma": 5, "venkataramanan": 5, "bannon": 5, "mcgee": 5, "floer": 5, "jalot": 5, "hsiong": 5, "arora": 5, "gorti": 5, "sachdev": 5, "solut": 5, "full": [5, 8], "self": [5, 9], "drive": 5, "micro": 5, "40": 5, "25": 5, "35": 5, "2020": [5, 10], "space": [6, 11], "explor": [6, 7, 11], "learn": 6, "bridg": 6, "gap": 6, "decis": 6, "special": 6, "fast": [6, 10], "accur": 6, "analyt": [6, 10], "crucial": 6, "part": [6, 8], "environ": 6, "get_hardware_performance_zigzag": 6, "futur": 6, "contribut": [6, 7, 14], "guidelin": [6, 14], "upgrad": 6, "develop": [6, 7], "idea": 6, "explan": 6, "studi": 6, "extens": [6, 7], "cross": 6, "multi": 6, "fuse": 6, "code": [6, 7, 13], "modul": [6, 11], "instruct": 7, "re": 7, "alreadi": [7, 11], "id": [7, 8, 14], "skip": [7, 11], "effect": 7, "Of": 7, "cours": 7, "mai": 7, "choic": 7, "prepar": 7, "11": 7, "newer": 7, "ensur": 7, "python3": 7, "necessari": 7, "via": 7, "manag": 7, "offici": 7, "websit": 7, "venv": 7, "zigzag_env": 7, "bin": 7, "enhanc": 7, "experi": 7, "box": 7, "open": [7, 13, 14], "prompt": 7, "powershel": 7, "script": [7, 13], "note": [7, 9], "don": [7, 8], "modifi": [7, 9, 11], "understand": 7, "interest": [7, 11], "git": 7, "sh": 7, "com": 7, "kuleuven": 7, "mica": 7, "Or": 7, "http": 7, "depend": 7, "navig": 7, "anaconda": 7, "prefer": 7, "conda": 7, "autom": [8, 10], "some": [8, 11, 14], "aspect": [8, 9, 11], "interfac": 8, "core_alloc": 8, "sinc": 8, "spatial_map": [8, 9], "strategi": 8, "spatialmappinggeneratorstag": [8, 11], "o": [8, 13, 14], "extra": [8, 11], "flexibl": 8, "scheme": 8, "left": 8, "instead": [8, 11], "temporal_ord": 8, "strictli": 8, "complet": [8, 14], "do": [8, 14], "reject": 8, "altogeth": 8, "matmul": [8, 14], "exact": 8, "example_name_of_layer0": 8, "32": 8, "112": 8, "innermost": [8, 11, 13], "outermost": 8, "i2": 8, "i1": 8, "want": [8, 11, 14], "detect": 8, "kei": 8, "dictionari": 8, "interpret": 9, "predefin": 9, "costmodelevalu": [9, 11, 13], "knowledg": 9, "irrelev": 9, "handl": 9, "complexhandl": 9, "insid": [9, 11, 14], "represent": [9, 11], "invok": 9, "pass": 9, "__simplejsonrepr__": 9, "convert": [9, 11, 14], "off": [9, 10], "load": [9, 13, 14], "reli": 9, "def": 9, "simpl": [9, 11], "energy_tot": 9, "latency_total2": 9, "standard": 9, "filename_pattern": 9, "lose": 9, "etc": [9, 11], "concern": 9, "__jsonrepr__": 9, "temporal_map": 9, "mem_utili_shar": 9, "word_access": 9, "memory_word_access": 9, "operational_energi": 9, "mac_energi": 9, "memory_energi": 9, "mem_energi": 9, "energy_breakdown_per_level": 9, "energy_breakdown": 9, "energy_breakdown_per_level_per_operand": 9, "energy_breakdown_furth": 9, "latency_without_onloading_without_offload": 9, "latency_total0": 9, "latency_with_onloading_without_offload": 9, "latency_total1": 9, "latency_with_onloading_with_offload": 9, "goal": [9, 11], "modif": 9, "straightforward": 9, "care": 9, "certain": 9, "parser": 9, "pointer": 10, "mei": 10, "houshmand": 10, "jain": 10, "giraldo": 10, "verhelst": 10, "enlarg": 10, "joint": 10, "transact": 10, "70": 10, "1160": 10, "1174": 10, "aug": 10, "doi": 10, "1109": 10, "tc": 10, "3059962": 10, "uniform": 10, "divers": 10, "europ": 10, "exhibit": 10, "date": 10, "antwerp": 10, "belgium": 10, "220": 10, "225": 10, "23919": 10, "date54114": 10, "9774728": 10, "slide": 10, "video": 10, "symon": 10, "3rd": 10, "artifici": 10, "intellig": 10, "aica": 10, "washington": 10, "dc": 10, "usa": 10, "aicas51828": 10, "9458493": 10, "coseman": 10, "papista": 10, "bhattacharje": 10, "deback": 10, "mallik": 10, "verkest": 10, "opportun": 10, "emerg": 10, "analog": 10, "electron": 10, "devic": 10, "meet": 10, "iedm": 10, "san": 10, "francisco": 10, "ca": 10, "29": 10, "iedm13553": 10, "9372006": 10, "accuraci": 10, "trade": 10, "contemporari": 10, "9458553": 10, "colleman": 10, "verelst": 10, "tuytelaar": 10, "processor": 10, "dynam": 10, "ifip": 10, "29th": 10, "veri": 10, "larg": [10, 14], "scale": 10, "vlsi": 10, "soc": 10, "singapor": 10, "soc53125": 10, "9607013": 10, "zhu": 10, "sun": 10, "mobil": 10, "transform": 10, "4th": 10, "incheon": 10, "korea": 10, "republ": 10, "142": 10, "145": 10, "aicas54282": 10, "9869945": 10, "goetschalckx": 10, "enabl": 10, "2023": 10, "karl": 10, "heterogen": 10, "exploit": 10, "fine": 10, "grain": 10, "48550": 10, "2212": 10, "10612": 10, "fasfou": 10, "genet": 10, "date56975": 10, "10137070": 10, "modularli": 11, "easili": 11, "adapt": 11, "sequenc": 11, "determin": 11, "mainstag": 11, "initi": 11, "workload_parser_stag": 11, "acceleratorparserstag": 11, "passthrough": 11, "simplesavestag": 11, "sum": 11, "picklesavestag": 11, "list": [11, 13, 14], "sumstag": 11, "workloadstag": 11, "visualizationstag": 11, "completesavestag": 11, "opt_stag": 11, "sm": 11, "lomastag": 11, "tm": 11, "costmodelstag": 11, "arg": 11, "filenam": 11, "loma_lpf_limit": 11, "lpf_limit": 11, "loma_show_progress_bar": 11, "true": [11, 14], "max": 11, "nb": 11, "nb_mappings_gener": 11, "nb_spatial_mappings_gener": 11, "mix": 11, "enable_mix_spatial_mapping_gener": 11, "fals": [11, 14], "smaller": 11, "bw": 11, "stai": 11, "pin": 11, "long": 11, "By": 11, "access_same_data_considered_as_no_access": 11, "launch": 11, "similar": 11, "those": 11, "pipelin": 11, "remain": 11, "said": 11, "onnx_model_path": 11, "further": 11, "label": 11, "temporalmappinggeneratorstag": 11, "fed": 11, "hw": 11, "far": 11, "discuss": 11, "last": 11, "revers": 11, "hold": 11, "finish": 11, "conbim": 11, "yield": 11, "chain": 11, "while": 11, "manipul": 11, "invoc": 11, "still": 11, "miss": 11, "look": 11, "__init__": 11, "workloadparserstag": 11, "workload_path": 11, "generalparameteriteratorstag": 11, "over": 11, "whose": 11, "predetermin": 11, "plottemporalmappingsstag": 11, "substag": 11, "keep": 11, "minimalenergystag": 11, "list_of_cal": 11, "minimaledpstag": 11, "listifystag": 11, "removeextrainfostag": 11, "strip": 11, "info": 11, "subcal": 11, "cachebeforeyieldstag": 11, "cach": 11, "break": 11, "top": [11, 13], "bottom": [11, 13], "skipifdumpexistsstag": 11, "multiprocessingspawnstag": 11, "multiprocess": 11, "multiprocessinggatherstag": 11, "dumpstag": 11, "salsastag": 11, "simul": 11, "anneal": 11, "temporalorderingconversionstag": 11, "spatialmappingconversionstag": 11, "arrai": 11, "present": [11, 14], "inner": [11, 13], "most": [11, 13], "searchinterlayerdatalocalitystag": 11, "instanc": 11, "usag": 11, "next": 11, "place": 11, "befor": 11, "workload_data_always_from_top_mem": 11, "entir": 11, "highest": 11, "travel": 11, "exploitinterlayerdatalocalitystag": 11, "remov": 11, "unus": 11, "accord": 11, "let": 11, "sai": 11, "metric": 11, "easiest": 11, "copi": [11, 13], "intend": 11, "behaviour": 11, "guarante": 11, "correct": 11, "taken": 11, "inherit": 11, "abstract": 11, "callabl": 11, "kwarg": 11, "second": 11, "extra_info": 11, "reduct": 11, "statement": 11, "outsid": 11, "happen": 11, "regard": 12, "six": 12, "major": 12, "compon": 12, "pickle_load": 13, "print_map": 13, "rb": 13, "fp": 13, "0": 13, "show": 13, "conv1": 13, "conv": [13, 14], "16": 13, "dram": 13, "sram_256kb": 13, "cell": 13, "parfor": 13, "64": 13, "outer": 13, "bar_plot_cost_model_evaluations_breakdown": 13, "plot_cm": 13, "save_path": 13, "plot_breakdown": 13, "png": 13, "produc": 13, "chart": 13, "context": 14, "ml": 14, "often": 14, "recogn": 14, "layernod": 14, "qlinearconv": 14, "gemm": 14, "dummynod": 14, "accelerat": 14, "incur": 14, "zero": 14, "feel": 14, "free": 14, "issu": 14, "yourself": 14, "precis": 14, "correspondingli": 14, "match": 14, "weight_siz": 14, "act_siz": 14, "output_s": 14, "rather": 14, "avoid": 14, "origin": 14, "discard": 14, "onnx_model": 14, "modelproto": 14, "my_model_with_internal_data": 14, "save_model": 14, "save_as_external_data": 14, "all_tensors_to_one_fil": 14, "locat": 14, "external_data_filenam": 14, "size_threshold": 14, "convert_attribut": 14, "Then": 14, "raw": 14, "specif": 14, "shape_infer": 14, "my_model": 14, "inferred_model": 14, "infer_shap": 14, "my_inferred_model": 14, "repres": 14, "identifi": 14, "operator_typ": 14, "equat": 14, "small": 14, "wherea": 14, "alwai": 14, "freeli": 14, "dimension_rel": 14, "relationship": 14, "stride": 14, "filter": 14, "dilat": 14, "rate": 14, "loop_dim": 14, "loop_siz": 14, "operand_precis": 14, "partial": 14, "o_fin": 14, "operand_sourc": 14, "prior": 14, "notat": 14, "batch": 14, "row": 14, "column": 14, "kernel": 14}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"zigzag": [0, 2, 6, 7, 10], "api": 0, "get_hardware_performance_zigzag": 0, "code": [1, 2], "document": [1, 2, 3, 6], "contribut": 2, "guidelin": 2, "upgrad": 2, "project": 2, "version": 2, "develop": 2, "write": 2, "new": [2, 10], "part": 2, "gener": [2, 10], "build": 2, "local": 2, "which": 2, "support": [2, 10, 14], "doxygen": 2, "futur": 3, "chang": 3, "framework": 3, "get": 4, "start": 4, "first": [4, 10], "run": 4, "tutori": 4, "manual": [4, 7, 14], "analyz": 4, "result": [4, 11], "hardwar": [5, 11], "architectur": 5, "oper": [5, 14], "unit": 5, "arrai": 5, "memori": 5, "instanc": 5, "hierarchi": 5, "core": [5, 10], "acceler": 5, "model": [5, 10, 11, 14], "exampl": 5, "specif": 5, "set": 5, "refer": 5, "welcom": 6, "": [6, 14], "content": 6, "indic": 6, "tabl": 6, "instal": 7, "environ": 7, "basic": 7, "setup": 7, "linux": 7, "mac": 7, "window": 7, "packag": 7, "clone": 7, "prerequisit": 7, "step": 7, "map": [8, 10, 11, 13], "user": [8, 12], "defin": 8, "constraint": 8, "output": 9, "simplesavestag": 9, "completesavestag": 9, "creat": [9, 11], "custom": [9, 11], "savestag": 9, "public": 10, "The": [10, 11], "idea": 10, "detail": 10, "latenc": [10, 13], "explan": 10, "tempor": [10, 11, 13], "search": 10, "engin": 10, "differ": 10, "design": 10, "space": 10, "explor": 10, "case": 10, "studi": 10, "extens": 10, "cross": 10, "layer": [10, 14], "depth": 10, "schedul": 10, "multi": 10, "fuse": 10, "stage": 11, "introduct": 11, "main": 11, "entri": 11, "point": 11, "sequenti": 11, "call": 11, "back": 11, "pass": 11, "implement": 11, "input": 11, "parser": 11, "iter": 11, "plot": 11, "reduc": 11, "optim": 11, "save": [11, 14], "dump": 11, "spatial": 11, "cost": 11, "modif": 11, "your": [11, 14], "guid": 12, "visual": 13, "energi": 13, "breakdown": 13, "workload": 14, "onnx": 14, "control": 14, "quantiz": 14, "extern": 14, "data": 14, "infer": 14, "an": 14, "shape": 14, "definit": 14}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"ZigZag API": [[0, "zigzag-api"]], "get_hardware_performance_zigzag()": [[0, "get-hardware-performance-zigzag"]], "Code Documentation": [[1, "code-documentation"]], "Contribute": [[2, "contribute"]], "Contributing guidelines": [[2, "contributing-guidelines"]], "Upgrading the project version (for ZigZag developers)": [[2, "upgrading-the-project-version-for-zigzag-developers"]], "Documentation": [[2, "documentation"], [3, "documentation"]], "Writing new parts for the general documentation": [[2, "writing-new-parts-for-the-general-documentation"]], "Building the general documentation locally": [[2, "building-the-general-documentation-locally"]], "Writing code which supports the code documentation with Doxygen": [[2, "writing-code-which-supports-the-code-documentation-with-doxygen"]], "Building the code documentation locally": [[2, "building-the-code-documentation-locally"]], "Future changes": [[3, "future-changes"]], "Framework": [[3, "framework"]], "Getting Started": [[4, "getting-started"]], "First run": [[4, "first-run"]], "Tutorial": [[4, "tutorial"]], "Manual run": [[4, "manual-run"]], "Analyzing results": [[4, "analyzing-results"]], "Hardware Architecture": [[5, "hardware-architecture"]], "Operational Unit": [[5, "operational-unit"]], "Operational Array": [[5, "operational-array"]], "Memory Instance": [[5, "memory-instance"]], "Memory Hierarchy": [[5, "memory-hierarchy"]], "Core": [[5, "core"]], "hardware Accelerator Model": [[5, "hardware-accelerator-model"]], "Modelled examples": [[5, "modelled-examples"]], "Specific settings": [[5, "specific-settings"]], "References": [[5, "references"]], "Welcome to ZigZag\u2019s documentation!": [[6, "welcome-to-zigzag-s-documentation"]], "Contents:": [[6, null]], "Indices and tables": [[6, "indices-and-tables"]], "Installation": [[7, "installation"]], "Environment": [[7, "environment"]], "Basic Setup": [[7, "basic-setup"]], "Linux/Mac": [[7, "linux-mac"]], "Windows": [[7, "windows"]], "Installing ZigZag": [[7, "installing-zigzag"]], "Installing as a Package": [[7, "installing-as-a-package"]], "Manual Clone": [[7, "manual-clone"]], "Prerequisites": [[7, "prerequisites"]], "Installation Steps": [[7, "installation-steps"]], "Mapping": [[8, "mapping"]], "User-defined mapping constraints": [[8, "user-defined-mapping-constraints"]], "Outputs": [[9, "outputs"]], "SimpleSaveStage": [[9, "simplesavestage"]], "CompleteSaveStage": [[9, "completesavestage"]], "Creating a custom SaveStage": [[9, "creating-a-custom-savestage"]], "Publications": [[10, "publications"]], "The general idea of ZigZag": [[10, "the-general-idea-of-zigzag"]], "Detailed latency model explanation": [[10, "detailed-latency-model-explanation"]], "The new temporal mapping search engine": [[10, "the-new-temporal-mapping-search-engine"]], "Different design space exploration case studies": [[10, "different-design-space-exploration-case-studies"]], "Extension to support cross-layer depth-first scheduling": [[10, "extension-to-support-cross-layer-depth-first-scheduling"]], "Extension to support multi-core layer-fused scheduling": [[10, "extension-to-support-multi-core-layer-fused-scheduling"]], "Stages": [[11, "stages"]], "Introduction": [[11, "introduction"]], "The main entry point": [[11, "the-main-entry-point"]], "The sequential call of stages": [[11, "the-sequential-call-of-stages"]], "The back passing of results": [[11, "the-back-passing-of-results"]], "Implemented stages": [[11, "implemented-stages"]], "Input parser stages": [[11, "input-parser-stages"]], "Iterator stage": [[11, "iterator-stage"]], "Plot stages": [[11, "plot-stages"]], "Reduce stages": [[11, "reduce-stages"]], "Optimization stages": [[11, "optimization-stages"]], "Save and dump stages": [[11, "save-and-dump-stages"]], "Temporal mapping stages": [[11, "temporal-mapping-stages"]], "Spatial mapping stages": [[11, "spatial-mapping-stages"]], "Cost model stages": [[11, "cost-model-stages"]], "Hardware modification stages": [[11, "hardware-modification-stages"]], "Creating your custom stage": [[11, "creating-your-custom-stage"]], "User Guide": [[12, "user-guide"]], "Visualization": [[13, "visualization"]], "Temporal mapping": [[13, "temporal-mapping"]], "Energy and latency breakdown": [[13, "energy-and-latency-breakdown"]], "Workload": [[14, "workload"]], "Onnx models": [[14, "onnx-models"]], "Supported onnx operators": [[14, "supported-onnx-operators"]], "Controlling the quantization": [[14, "controlling-the-quantization"]], "Saving your onnx model with external data": [[14, "saving-your-onnx-model-with-external-data"]], "Inferring an onnx model\u2019s shapes": [[14, "inferring-an-onnx-model-s-shapes"]], "Manual layer definition": [[14, "manual-layer-definition"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "code-documentation", "contribute", "future", "getting-started", "hardware", "index", "installation", "mapping", "outputs", "publications", "stages", "user-guide", "visualization", "workload"], "filenames": ["api.rst", "code-documentation.rst", "contribute.rst", "future.rst", "getting-started.rst", "hardware.rst", "index.rst", "installation.rst", "mapping.rst", "outputs.rst", "publications.rst", "stages.rst", "user-guide.rst", "visualization.rst", "workload.rst"], "titles": ["ZigZag API", "Code Documentation", "Contribute", "Future changes", "Getting Started", "Hardware Architecture", "Welcome to ZigZag\u2019s documentation!", "Installation", "Mapping", "Outputs", "Publications", "Stages", "User Guide", "Visualization", "Workload"], "terms": {"onc": 0, "i": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14], "avail": [0, 2, 5], "your": [0, 2, 7, 8], "python": [0, 2, 4, 7], "path": [0, 7, 14], "you": [0, 2, 3, 4, 5, 7, 8, 9, 11, 14], "can": [0, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14], "import": [0, 2, 5, 13, 14], "ani": [0, 2, 5, 7, 11], "file": [0, 2, 4, 5, 7, 8, 9, 11, 14], "from": [0, 2, 5, 7, 11, 13, 14], "thi": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14], "function": [0, 2, 4, 7, 11, 13], "take": [0, 3, 5, 11, 14], "an": [0, 2, 4, 5, 7, 8, 9, 11], "workload": [0, 4, 6, 8, 11, 12], "hardwar": [0, 3, 4, 6, 8, 12, 14], "architectur": [0, 4, 6, 8, 10, 11, 12], "map": [0, 4, 5, 6, 9, 12, 14], "return": [0, 9, 11], "perform": [0, 5, 10], "execut": [0, 2, 4, 5, 7, 8, 11], "model": [0, 3, 4, 6], "": [0, 2, 3, 4, 5, 7, 10, 11, 13], "layer": [0, 4, 5, 6, 8, 9, 11], "under": [0, 2, 4, 8], "given": [0, 4, 8, 11], "constraint": [0, 4], "energi": [0, 3, 4, 5, 9, 10, 11], "latenc": [0, 3, 4, 5, 6, 9, 11], "cme": [0, 11, 13], "acceler": [0, 4, 6, 8, 9, 10, 11], "opt": 0, "dump_fold": [0, 4, 11], "output": [0, 4, 5, 6, 11, 12, 13, 14], "datetim": 0, "json": [0, 9, 11], "pickle_filenam": [0, 11, 13], "list_of_cm": [0, 13], "pickl": [0, 11, 13], "The": [0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14], "input": [0, 4, 5, 8, 9, 14], "ar": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14], "A": [0, 5, 6, 8, 10, 14], "neural": [0, 4, 5, 10, 14], "network": [0, 4, 5, 10, 14], "defin": [0, 4, 5, 9, 10, 11, 14], "onnx": [0, 3, 4, 8, 11], "format": [0, 1, 2, 9], "own": [0, 11, 14], "high": [0, 5, 10], "level": [0, 5, 11, 13], "descript": [0, 8, 11], "specifi": [0, 5, 9], "core": [0, 4, 6, 8, 11], "alloc": [0, 4, 5, 8, 10, 11, 13], "spatial": [0, 4, 5, 8, 9, 10, 13, 14], "option": [0, 5, 7], "tempor": [0, 4, 6, 8, 9], "order": [0, 2, 4, 5, 8, 10, 11, 13], "memori": [0, 3, 4, 6, 8, 9, 10, 11, 13, 14], "operand": [0, 5, 8, 11, 13, 14], "link": [0, 1, 5, 8, 14], "optim": [0, 4, 6, 10], "target": [0, 2], "It": [0, 4, 9, 11, 14], "edp": [0, 11], "delai": 0, "product": 0, "name": [0, 4, 5, 8, 14], "result": [0, 6, 9, 13], "folder": [0, 2, 7, 11], "which": [0, 4, 5, 8, 9, 11, 13, 14], "includ": [0, 2, 5, 9, 14], "all": [0, 2, 4, 5, 9, 11, 14], "detail": [0, 2, 6, 7, 11], "metadata": 0, "analyz": [0, 6, 10], "debug": 0, "number": [0, 5, 9, 14], "indic": [0, 14], "overal": 0, "consum": [0, 5], "run": [0, 2, 6, 7, 8, 11, 13], "user": [0, 3, 4, 6, 7, 11], "wai": [0, 1, 2, 4, 5, 9, 11, 13, 14], "cycl": [0, 5], "count": 0, "collect": 0, "cost": [0, 3, 4, 5, 6, 14], "evalu": [0, 5, 11], "stand": 0, "we": [0, 2, 3, 4, 5, 7, 11], "demonstr": [0, 13], "how": [0, 2, 4, 5, 7, 8, 9, 11, 13], "us": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14], "multipl": [0, 5, 6, 10, 11, 13, 14], "demo": 0, "comment": [1, 2], "within": [1, 5, 8, 11, 14], "sourc": [1, 2, 7], "zigzag": [1, 4, 5, 8, 9, 11, 12, 13, 14], "framework": [1, 2, 4, 6, 7, 8, 10, 11, 12, 14], "support": [1, 3, 4, 5, 6, 8, 11], "auto": [1, 10], "doxygen": 1, "automat": [1, 4, 5, 6, 8, 11, 13, 14], "updat": [1, 2, 3, 11], "soon": 1, "somebodi": 1, "push": 1, "someth": 1, "master": 1, "branch": [1, 4], "github": [1, 2, 7, 10], "repo": [1, 14], "project": [1, 6, 10], "follow": [1, 2, 4, 5, 7, 8, 9, 11, 12, 14], "access": [1, 3, 5, 11], "latest": 1, "version": [1, 6, 7, 11], "when": [2, 8, 11, 13, 14], "pleas": [2, 9, 11], "consid": [2, 11], "googl": 2, "style": 2, "guid": [2, 3, 6, 7], "docstr": 2, "class": [2, 11], "method": [2, 5, 9], "exampl": [2, 4, 8, 9, 11, 13, 14], "found": [2, 11, 14], "throughout": 2, "here": [2, 3, 4, 7, 10, 13, 14], "accordingli": 2, "pylintrc": 2, "linter": 2, "configur": [2, 10], "pre": 2, "commit": 2, "config": [2, 11], "yaml": [2, 4, 14], "check": [2, 7, 11], "In": [2, 4, 5, 6, 9, 11], "packag": 2, "call": [2, 4, 13], "bumpver": 2, "twine": 2, "These": [2, 11], "instal": [2, 6], "pip": [2, 7], "pytest": 2, "typeguard": 2, "first": [2, 5, 6, 11], "pull": 2, "make": [2, 3, 5, 9], "sure": 2, "have": [2, 4, 5, 7, 11, 14], "remot": 2, "chang": [2, 5, 6, 11, 14], "merg": 2, "conflict": 2, "lint": 2, "type": [2, 5, 8, 12, 14], "m": [2, 5, 7, 10], "ruff": 2, "select": 2, "e9": 2, "f63": 2, "f7": 2, "f82": 2, "py37": 2, "test": [2, 10], "whether": [2, 11], "been": [2, 4], "broken": 2, "main": [2, 4, 5, 7, 9], "final": [2, 11, 14], "command": [2, 4, 7, 14], "publish": 2, "patch": 2, "upload": 2, "dist": 2, "zigzag_ds": 2, "x": [2, 5], "y": [2, 5], "z": [2, 5], "whl": 2, "dse": [2, 6, 7], "tar": 2, "gz": 2, "provid": [2, 4, 5, 6, 7, 8, 11, 12], "sever": 2, "differ": [2, 4, 5, 6, 9, 11, 14], "There": [2, 5, 9], "mani": [2, 5], "public": [2, 6], "relat": 2, "page": [2, 6], "allow": [2, 5, 8, 11], "everyon": 2, "get": [2, 6, 7], "familiar": [2, 7], "more": [2, 3, 4, 5, 7, 11, 12, 14], "about": [2, 9, 11], "implement": 2, "ad": [2, 7, 8, 14], "mandatori": 2, "what": [2, 5, 9, 11], "doe": [2, 5], "achiev": [2, 5], "newli": 2, "explicit": 2, "resid": [2, 11, 13], "doc": 2, "restructuredtext": 2, "rst": 2, "decid": 2, "would": [2, 14], "best": [2, 11], "fit": 2, "exist": [2, 11], "one": [2, 4, 5, 7, 11], "If": [2, 5, 7, 8, 9, 11, 14], "creat": [2, 8], "lower": [2, 5, 11], "case": [2, 3, 6], "letter": [2, 14], "hyphen": 2, "between": [2, 6, 14], "word": [2, 5], "after": [2, 5, 7, 11], "need": [2, 4, 5, 7, 8, 11, 14], "add": [2, 3, 7, 14], "toctre": 2, "index": [2, 6], "same": [2, 5, 11], "webpag": 2, "sphinx": 2, "should": [2, 4, 5, 8, 9, 14], "both": [2, 3, 5], "press": 2, "theme": 2, "easi": [2, 9], "through": [2, 4, 5, 6, 7, 8, 10, 11, 14], "requir": [2, 4, 5, 7, 8, 9, 11, 14], "txt": [2, 4, 7], "cd": [2, 7], "r": [2, 5, 7], "simpli": [2, 11], "b": [2, 5, 14], "html": 2, "entri": [2, 8, 14], "point": [2, 6], "guidlin": 2, "paramet": [2, 5, 11], "constructor": 2, "download": [2, 7], "describ": [2, 13, 14], "successfulli": 2, "done": [2, 4], "either": [2, 5], "gui": 2, "conf": 2, "find": [3, 4, 6, 11], "plan": 3, "oper": [3, 8, 11], "account": [3, 11, 14], "bandwidth": [3, 5], "loma": [3, 4, 10, 11], "memoryalloc": 3, "besid": [3, 4, 5, 11], "capac": [3, 5], "lpf": 3, "limit": [3, 10], "visual": [3, 6, 12], "tutori": 3, "remak": 3, "tabl": [3, 5], "without": 3, "df": [3, 5], "stage": [3, 4, 6, 9, 12], "stack": 3, "combin": [3, 8, 9, 11], "common": [3, 5], "versatil": 4, "tool": 4, "estim": [4, 6], "dl": [4, 6], "design": [4, 5, 6, 11], "multitud": 4, "set": [4, 7, 8, 11, 14], "As": [4, 11], "step": [4, 11], "onto": [4, 6, 8], "recommend": [4, 7, 14], "lab": [4, 5], "them": [4, 5, 11], "repositori": [4, 5, 7], "lab1": 4, "altern": [4, 5, 7, 14], "also": [4, 5, 7, 8, 9, 11, 14], "go": [4, 5, 13], "alexnet": 4, "ha": [4, 5, 11, 12, 14], "shape": 4, "infer": [4, 5], "mean": [4, 5, 11], "tensor": [4, 5, 14], "intermedi": [4, 5, 14], "inform": [4, 5, 8, 9, 12, 14], "know": [4, 5, 8, 9, 14], "correctli": [4, 14], "tpu": [4, 5], "like": [4, 7, 11, 14], "tpu_lik": 4, "must": [4, 5, 8, 11, 14], "suggest": 4, "resourc": [4, 6, 8], "gener": [4, 5, 6, 8, 9, 11, 12, 13], "pars": [4, 11, 14], "contain": [4, 8, 14], "program": 4, "flow": [4, 11], "document": [4, 7, 11, 12], "py": [4, 8, 11, 13], "resnet18": [4, 8, 14], "below": [4, 7, 8, 11], "see": [4, 7, 9, 14], "termin": [4, 13], "other": [4, 5, 11, 14], "directori": [4, 14], "directli": [4, 7], "runnabl": 4, "variabl": 4, "thu": 4, "doesn": [4, 14], "t": [4, 5, 7, 8, 10, 14], "line": 4, "argument": [4, 7, 11], "section": [4, 5, 7, 9, 11], "definit": [4, 5, 8, 9, 11], "salsa": [4, 11], "search": [4, 6], "engin": [4, 6, 11], "util": [4, 9, 13], "than": [4, 11], "temporal_mapping_search_engin": 4, "api": [4, 6, 7, 13], "dure": [4, 7], "save": [4, 9], "total": [4, 5, 11], "five": 4, "each": [4, 5, 9, 11, 13, 14], "node": [4, 8, 9, 11], "onnxmodelparserstag": [4, 8, 11, 14], "wa": 4, "minimallatencystag": [4, 11], "refer": [4, 14], "chosen": [4, 11], "loop": [4, 8, 10, 11, 13, 14], "loop_ord": 4, "well": [4, 5], "graph": [4, 11, 14], "hierarchi": [4, 8, 9, 11, 13], "bar": [4, 13], "plot": [4, 13], "introduc": 5, "concept": [5, 11], "known": 5, "start": [5, 6, 7, 11], "smallest": 5, "build": [5, 12, 14], "block": [5, 7, 12, 13], "work": [5, 9], "our": [5, 11], "up": [5, 7, 11], "toward": [5, 10], "summat": 5, "accumul": 5, "across": [5, 10, 11], "data": [5, 9, 11], "activ": [5, 7, 14], "train": 5, "weight": [5, 14], "typic": [5, 8, 14], "multipli": 5, "two": [5, 9], "element": [5, 11], "object": [5, 9, 11, 13, 14], "attribut": [5, 9, 14], "singl": [5, 8, 11], "e": [5, 8, 10, 11, 13], "g": [5, 8, 11, 13], "area": [5, 10], "overhead": 5, "inferenc": 5, "million": 5, "parallel": [5, 8], "significantli": 5, "speed": 5, "comput": [5, 6, 8, 10], "increas": 5, "effici": 5, "cover": 5, "later": [5, 11], "dimens": [5, 11, 14], "size": [5, 11, 14], "explain": [5, 9, 11], "introduct": 5, "operational_unit": 5, "built": 5, "d1": [5, 8, 11], "d2": [5, 8], "valu": [5, 8, 11, 14], "being": [5, 11], "correspond": [5, 8, 11], "along": 5, "store": 5, "attach": 5, "hierarch": 5, "fashion": 5, "big": 5, "term": 5, "write": [5, 8], "read": [5, 11], "its": [5, 9, 11], "port": 5, "bit": [5, 14], "r_bw": 5, "w_bw": 5, "per": 5, "r_cost": 5, "w_cost": 5, "r_port": 5, "w_port": 5, "rw_port": 5, "address": 5, "receiv": [5, 11], "For": [5, 7, 11, 13], "now": [5, 7], "assum": [5, 11, 14], "1": [5, 8, 10], "prefetch": 5, "behavior": 5, "thank": 5, "determinist": 5, "dataflow": [5, 10], "min_r_granular": 5, "min_w_granular": 5, "minim": [5, 11], "granular": 5, "better": 5, "half": 5, "quarter": 5, "pattern": [5, 11], "wordlength": 5, "256": 5, "100": 5, "128": 5, "onli": [5, 8, 9, 11, 14], "50": 5, "spec": [5, 7], "encod": [5, 8], "respect": [5, 9], "interconnect": [5, 11], "construct": 5, "base": [5, 8, 10, 11], "lowest": [5, 11], "To": [5, 7, 11, 14], "connect": [5, 11], "anoth": [5, 11], "decoupl": 5, "algorithm": [5, 6, 8, 10, 14], "side": 5, "oppos": 5, "w": [5, 8, 10, 13], "think": [5, 11], "virtual": [5, 7], "actual": 5, "memory_operand_link": [5, 8], "similarli": 5, "unrol": 5, "form": 5, "where": [5, 11, 13, 14], "accompani": 5, "served_dimens": 5, "serv": [5, 11], "hot": 5, "tupl": [5, 11], "2": [5, 8], "3": [5, 7, 13], "4": [5, 10, 11], "four": 5, "empti": [5, 8], "12": 5, "lastli": 5, "assign": 5, "movement": 5, "possibl": [5, 14], "fh": 5, "th": 5, "low": 5, "fl": 5, "tl": 5, "higher": [5, 11], "written": 5, "current": [5, 9, 14], "out": 5, "At": 5, "time": [5, 8, 11], "manual": [5, 8, 11], "syntax": 5, "port_typ": 5, "_port_": 5, "port_numb": 5, "rw": 5, "equal": 5, "default": [5, 8, 11], "intern": [5, 7, 10, 11], "memoryhierarchi": 5, "extend": [5, 14], "networkx": 5, "digraph": 5, "so": [5, 11, 14], "togeth": [5, 8], "preserv": 5, "compat": 5, "stream": 5, "wrap": 5, "5": 5, "dnn": [5, 10], "meta": 5, "prototyp": 5, "edg": [5, 14], "ascend": 5, "tesla": 5, "npu": 5, "depth": [5, 6], "schedul": [5, 6, 8, 11], "research": 5, "fair": 5, "relev": [5, 9], "comparison": 5, "normal": 5, "1024": [5, 14], "mac": 5, "maxim": 5, "2mb": 5, "global": 5, "buffer": 5, "gb": 5, "kept": 5, "local": 5, "shown": 5, "idx": 5, "7": [5, 8, 13], "9": 5, "variant": 5, "everi": [5, 8], "chip": 5, "denot": 5, "end": [5, 7, 11], "6": [5, 10], "8": [5, 10, 11], "10": [5, 10], "k": [5, 8, 10, 11, 13, 14], "channel": [5, 14], "c": [5, 8, 11, 13, 14], "ox": [5, 8, 13, 14], "oi": [5, 8, 13, 14], "featur": 5, "fx": [5, 8, 13, 14], "fy": [5, 8, 13, 14], "h": [5, 10], "sumbul": [5, 10], "f": [5, 13], "wu": [5, 10], "li": 5, "sarwar": 5, "koven": 5, "murphi": 5, "trotzki": 5, "cai": 5, "ansari": 5, "d": [5, 10], "morri": 5, "liu": [5, 10], "kim": 5, "beign": [5, 10], "system": [5, 7, 10, 11], "integr": [5, 10], "vr": 5, "custom": [5, 7, 8, 14], "power": 5, "7nm": 5, "technologi": 5, "codec": 5, "avatar": 5, "2022": [5, 10], "ieee": [5, 10], "circuit": [5, 10], "confer": [5, 10], "cicc": 5, "pp": [5, 10], "01": 5, "08": 5, "n": [5, 10], "p": [5, 10], "jouppi": 5, "young": 5, "patil": 5, "patterson": 5, "agraw": 5, "bajwa": 5, "bate": 5, "bhatia": 5, "boden": 5, "borcher": 5, "boyl": 5, "l": [5, 10], "cantin": 5, "chao": 5, "clark": 5, "j": 5, "coriel": 5, "dalei": 5, "dau": 5, "dean": 5, "gelb": 5, "v": [5, 7, 10], "ghaemmaghami": 5, "gottipati": 5, "gulland": 5, "hagmann": 5, "ho": 5, "hogberg": 5, "hu": 5, "hundt": 5, "hurt": 5, "ibarz": 5, "jaffei": 5, "jaworski": 5, "kaplan": 5, "khaitan": 5, "killebrew": 5, "koch": 5, "kumar": 5, "laci": 5, "laudon": 5, "law": 5, "le": 5, "leari": 5, "luck": 5, "lundin": 5, "mackean": 5, "maggior": 5, "mahoni": 5, "miller": 5, "nagarajan": 5, "narayanaswami": 5, "ni": 5, "nix": 5, "norri": 5, "omernick": 5, "penukonda": 5, "phelp": 5, "ross": 5, "salek": 5, "samadiani": 5, "severn": 5, "sizikov": 5, "snelham": 5, "souter": 5, "steinberg": 5, "swing": 5, "tan": 5, "thorson": 5, "tian": 5, "toma": 5, "tuttl": 5, "vasudevan": 5, "walter": 5, "wang": 5, "wilcox": 5, "yoon": 5, "datacent": 5, "analysi": 5, "process": [5, 11], "sigarch": 5, "archit": 5, "new": [5, 6, 11], "vol": [5, 10], "45": 5, "jun": 5, "2017": 5, "yazdanbakhsh": 5, "seshadri": 5, "akin": 5, "convolut": [5, 8, 14], "arxiv": [5, 10], "print": [5, 10, 13], "2102": 5, "10423": 5, "feb": 5, "2021": [5, 10], "liao": 5, "tu": 5, "xia": 5, "zhou": 5, "yuan": 5, "scalabl": 5, "unifi": 5, "ubiquit": 5, "deep": [5, 6, 10], "industri": 5, "track": 5, "paper": [5, 10, 14], "symposium": [5, 10], "hpca": [5, 10], "789": 5, "801": 5, "talp": 5, "sarma": 5, "venkataramanan": 5, "bannon": 5, "mcgee": 5, "floer": 5, "jalot": 5, "hsiong": 5, "arora": 5, "gorti": 5, "sachdev": 5, "solut": 5, "full": [5, 8], "self": [5, 9], "drive": 5, "micro": 5, "40": 5, "25": 5, "35": 5, "2020": [5, 10], "space": [6, 11], "explor": [6, 7, 11], "learn": 6, "bridg": 6, "gap": 6, "decis": 6, "special": 6, "fast": [6, 10], "accur": 6, "analyt": [6, 10], "crucial": 6, "part": [6, 8], "environ": 6, "get_hardware_performance_zigzag": 6, "futur": 6, "contribut": [6, 7, 14], "guidelin": [6, 14], "upgrad": 6, "develop": [6, 7], "idea": 6, "explan": 6, "studi": 6, "extens": [6, 7], "cross": 6, "multi": 6, "fuse": 6, "code": [6, 7, 13], "modul": [6, 11], "instruct": 7, "re": 7, "alreadi": [7, 11], "id": [7, 8, 14], "skip": [7, 11], "effect": 7, "Of": 7, "cours": 7, "mai": 7, "choic": 7, "prepar": 7, "11": 7, "newer": 7, "ensur": 7, "python3": 7, "necessari": 7, "via": 7, "manag": 7, "offici": 7, "websit": 7, "venv": 7, "zigzag_env": 7, "bin": 7, "enhanc": 7, "experi": 7, "box": 7, "open": [7, 13, 14], "prompt": 7, "powershel": 7, "script": [7, 13], "don": [7, 8], "modifi": [7, 9, 11], "understand": 7, "interest": [7, 11], "git": 7, "sh": 7, "com": 7, "kuleuven": 7, "mica": 7, "Or": 7, "http": 7, "depend": 7, "navig": 7, "anaconda": 7, "prefer": 7, "conda": 7, "autom": [8, 10], "some": [8, 11, 14], "aspect": [8, 9, 11], "interfac": 8, "core_alloc": 8, "sinc": 8, "spatial_map": [8, 9], "strategi": 8, "spatialmappinggeneratorstag": [8, 11], "o": [8, 13, 14], "extra": [8, 11], "flexibl": 8, "scheme": 8, "left": 8, "instead": [8, 11], "temporal_ord": 8, "strictli": 8, "complet": [8, 14], "do": [8, 14], "reject": 8, "altogeth": 8, "matmul": [8, 14], "exact": 8, "example_name_of_layer0": 8, "32": 8, "112": 8, "innermost": [8, 11, 13], "outermost": 8, "i2": 8, "i1": 8, "want": [8, 11, 14], "detect": 8, "kei": 8, "dictionari": 8, "interpret": 9, "predefin": 9, "costmodelevalu": [9, 11, 13], "knowledg": 9, "irrelev": 9, "handl": 9, "complexhandl": 9, "insid": [9, 11, 14], "represent": [9, 11], "invok": 9, "pass": 9, "__simplejsonrepr__": 9, "convert": [9, 11, 14], "off": [9, 10], "load": [9, 13, 14], "reli": 9, "def": 9, "simpl": [9, 11], "energy_tot": 9, "latency_total2": 9, "note": 9, "standard": 9, "filename_pattern": 9, "lose": 9, "etc": [9, 11], "concern": 9, "__jsonrepr__": 9, "temporal_map": 9, "mem_utili_shar": 9, "word_access": 9, "memory_word_access": 9, "operational_energi": 9, "mac_energi": 9, "memory_energi": 9, "mem_energi": 9, "energy_breakdown_per_level": 9, "energy_breakdown": 9, "energy_breakdown_per_level_per_operand": 9, "energy_breakdown_furth": 9, "latency_without_onloading_without_offload": 9, "latency_total0": 9, "latency_with_onloading_without_offload": 9, "latency_total1": 9, "latency_with_onloading_with_offload": 9, "goal": [9, 11], "modif": 9, "straightforward": 9, "care": 9, "certain": 9, "parser": 9, "pointer": 10, "mei": 10, "houshmand": 10, "jain": 10, "giraldo": 10, "verhelst": 10, "enlarg": 10, "joint": 10, "transact": 10, "70": 10, "1160": 10, "1174": 10, "aug": 10, "doi": 10, "1109": 10, "tc": 10, "3059962": 10, "uniform": 10, "divers": 10, "europ": 10, "exhibit": 10, "date": 10, "antwerp": 10, "belgium": 10, "220": 10, "225": 10, "23919": 10, "date54114": 10, "9774728": 10, "slide": 10, "video": 10, "symon": 10, "3rd": 10, "artifici": 10, "intellig": 10, "aica": 10, "washington": 10, "dc": 10, "usa": 10, "aicas51828": 10, "9458493": 10, "coseman": 10, "papista": 10, "bhattacharje": 10, "deback": 10, "mallik": 10, "verkest": 10, "opportun": 10, "emerg": 10, "analog": 10, "electron": 10, "devic": 10, "meet": 10, "iedm": 10, "san": 10, "francisco": 10, "ca": 10, "29": 10, "iedm13553": 10, "9372006": 10, "accuraci": 10, "trade": 10, "contemporari": 10, "9458553": 10, "colleman": 10, "verelst": 10, "tuytelaar": 10, "processor": 10, "dynam": 10, "ifip": 10, "29th": 10, "veri": 10, "larg": [10, 14], "scale": 10, "vlsi": 10, "soc": 10, "singapor": 10, "soc53125": 10, "9607013": 10, "zhu": 10, "sun": 10, "mobil": 10, "transform": 10, "4th": 10, "incheon": 10, "korea": 10, "republ": 10, "142": 10, "145": 10, "aicas54282": 10, "9869945": 10, "goetschalckx": 10, "enabl": 10, "2023": 10, "karl": 10, "heterogen": 10, "exploit": 10, "fine": 10, "grain": 10, "48550": 10, "2212": 10, "10612": 10, "fasfou": 10, "genet": 10, "date56975": 10, "10137070": 10, "modularli": 11, "easili": 11, "adapt": 11, "sequenc": 11, "determin": 11, "mainstag": 11, "initi": 11, "workload_parser_stag": 11, "acceleratorparserstag": 11, "passthrough": 11, "simplesavestag": 11, "sum": 11, "picklesavestag": 11, "list": [11, 13, 14], "sumstag": 11, "workloadstag": 11, "visualizationstag": 11, "completesavestag": 11, "opt_stag": 11, "sm": 11, "lomastag": 11, "tm": 11, "costmodelstag": 11, "arg": 11, "filenam": 11, "loma_lpf_limit": 11, "lpf_limit": 11, "loma_show_progress_bar": 11, "true": [11, 14], "max": 11, "nb": 11, "nb_mappings_gener": 11, "nb_spatial_mappings_gener": 11, "mix": 11, "enable_mix_spatial_mapping_gener": 11, "fals": [11, 14], "smaller": 11, "bw": 11, "stai": 11, "pin": 11, "long": 11, "By": 11, "access_same_data_considered_as_no_access": 11, "launch": 11, "similar": 11, "those": 11, "pipelin": 11, "remain": 11, "said": 11, "onnx_model_path": 11, "further": 11, "label": 11, "temporalmappinggeneratorstag": 11, "fed": 11, "hw": 11, "far": 11, "discuss": 11, "last": 11, "revers": 11, "hold": 11, "finish": 11, "conbim": 11, "yield": 11, "chain": 11, "while": 11, "manipul": 11, "invoc": 11, "still": 11, "miss": 11, "look": 11, "__init__": 11, "workloadparserstag": 11, "workload_path": 11, "generalparameteriteratorstag": 11, "over": 11, "whose": 11, "predetermin": 11, "plottemporalmappingsstag": 11, "substag": 11, "keep": 11, "minimalenergystag": 11, "list_of_cal": 11, "minimaledpstag": 11, "listifystag": 11, "removeextrainfostag": 11, "strip": 11, "info": 11, "subcal": 11, "cachebeforeyieldstag": 11, "cach": 11, "break": 11, "top": [11, 13], "bottom": [11, 13], "skipifdumpexistsstag": 11, "multiprocessingspawnstag": 11, "multiprocess": 11, "multiprocessinggatherstag": 11, "dumpstag": 11, "salsastag": 11, "simul": 11, "anneal": 11, "temporalorderingconversionstag": 11, "spatialmappingconversionstag": 11, "arrai": 11, "present": [11, 14], "inner": [11, 13], "most": [11, 13], "searchinterlayerdatalocalitystag": 11, "instanc": 11, "usag": 11, "next": 11, "place": 11, "befor": 11, "workload_data_always_from_top_mem": 11, "entir": 11, "highest": 11, "travel": 11, "exploitinterlayerdatalocalitystag": 11, "remov": 11, "unus": 11, "accord": 11, "let": 11, "sai": 11, "metric": 11, "easiest": 11, "copi": [11, 13], "intend": 11, "behaviour": 11, "guarante": 11, "correct": 11, "taken": 11, "inherit": 11, "abstract": 11, "callabl": 11, "kwarg": 11, "second": 11, "extra_info": 11, "reduct": 11, "statement": 11, "outsid": 11, "happen": 11, "regard": 12, "six": 12, "major": 12, "compon": 12, "pickle_load": 13, "print_map": 13, "rb": 13, "fp": 13, "0": 13, "show": 13, "conv1": 13, "conv": [13, 14], "16": 13, "dram": 13, "sram_256kb": 13, "cell": 13, "parfor": 13, "64": 13, "outer": 13, "bar_plot_cost_model_evaluations_breakdown": 13, "plot_cm": 13, "save_path": 13, "plot_breakdown": 13, "png": 13, "produc": 13, "chart": 13, "context": 14, "ml": 14, "often": 14, "recogn": 14, "layernod": 14, "qlinearconv": 14, "gemm": 14, "dummynod": 14, "accelerat": 14, "incur": 14, "zero": 14, "feel": 14, "free": 14, "issu": 14, "yourself": 14, "precis": 14, "correspondingli": 14, "match": 14, "weight_siz": 14, "act_siz": 14, "output_s": 14, "rather": 14, "avoid": 14, "origin": 14, "discard": 14, "onnx_model": 14, "modelproto": 14, "my_model_with_internal_data": 14, "save_model": 14, "save_as_external_data": 14, "all_tensors_to_one_fil": 14, "locat": 14, "external_data_filenam": 14, "size_threshold": 14, "convert_attribut": 14, "Then": 14, "raw": 14, "specif": 14, "shape_infer": 14, "my_model": 14, "inferred_model": 14, "infer_shap": 14, "my_inferred_model": 14, "repres": 14, "identifi": 14, "operator_typ": 14, "equat": 14, "small": 14, "wherea": 14, "alwai": 14, "freeli": 14, "dimension_rel": 14, "relationship": 14, "stride": 14, "filter": 14, "dilat": 14, "rate": 14, "loop_dim": 14, "loop_siz": 14, "operand_precis": 14, "partial": 14, "o_fin": 14, "operand_sourc": 14, "prior": 14, "notat": 14, "batch": 14, "row": 14, "column": 14, "kernel": 14}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"zigzag": [0, 2, 6, 7, 10], "api": 0, "get_hardware_performance_zigzag": 0, "code": [1, 2], "document": [1, 2, 3, 6], "contribut": 2, "guidelin": 2, "upgrad": 2, "project": 2, "version": 2, "develop": 2, "write": 2, "new": [2, 10], "part": 2, "gener": [2, 10], "build": 2, "local": 2, "which": 2, "support": [2, 10, 14], "doxygen": 2, "futur": 3, "chang": 3, "framework": 3, "get": 4, "start": 4, "first": [4, 10], "run": 4, "tutori": 4, "manual": [4, 7, 14], "analyz": 4, "result": [4, 11], "hardwar": [5, 11], "architectur": 5, "oper": [5, 14], "unit": 5, "arrai": 5, "memori": 5, "instanc": 5, "hierarchi": 5, "core": [5, 10], "acceler": 5, "model": [5, 10, 11, 14], "exampl": 5, "specif": 5, "set": 5, "refer": 5, "welcom": 6, "": [6, 14], "content": 6, "indic": 6, "tabl": 6, "instal": 7, "environ": 7, "basic": 7, "setup": 7, "linux": 7, "mac": 7, "window": 7, "packag": 7, "clone": 7, "prerequisit": 7, "step": 7, "map": [8, 10, 11, 13], "user": [8, 12], "defin": 8, "constraint": 8, "output": 9, "simplesavestag": 9, "completesavestag": 9, "creat": [9, 11], "custom": [9, 11], "savestag": 9, "public": 10, "The": [10, 11], "idea": 10, "detail": 10, "latenc": [10, 13], "explan": 10, "tempor": [10, 11, 13], "search": 10, "engin": 10, "differ": 10, "design": 10, "space": 10, "explor": 10, "case": 10, "studi": 10, "extens": 10, "cross": 10, "layer": [10, 14], "depth": 10, "schedul": 10, "multi": 10, "fuse": 10, "stage": 11, "introduct": 11, "main": 11, "entri": 11, "point": 11, "sequenti": 11, "call": 11, "back": 11, "pass": 11, "implement": 11, "input": 11, "parser": 11, "iter": 11, "plot": 11, "reduc": 11, "optim": 11, "save": [11, 14], "dump": 11, "spatial": 11, "cost": 11, "modif": 11, "your": [11, 14], "guid": 12, "visual": 13, "energi": 13, "breakdown": 13, "workload": 14, "onnx": 14, "control": 14, "quantiz": 14, "extern": 14, "data": 14, "infer": 14, "an": 14, "shape": 14, "definit": 14}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"ZigZag API": [[0, "zigzag-api"]], "get_hardware_performance_zigzag()": [[0, "get-hardware-performance-zigzag"]], "Code Documentation": [[1, "code-documentation"]], "Contribute": [[2, "contribute"]], "Contributing guidelines": [[2, "contributing-guidelines"]], "Upgrading the project version (for ZigZag developers)": [[2, "upgrading-the-project-version-for-zigzag-developers"]], "Documentation": [[2, "documentation"], [3, "documentation"]], "Writing new parts for the general documentation": [[2, "writing-new-parts-for-the-general-documentation"]], "Building the general documentation locally": [[2, "building-the-general-documentation-locally"]], "Writing code which supports the code documentation with Doxygen": [[2, "writing-code-which-supports-the-code-documentation-with-doxygen"]], "Building the code documentation locally": [[2, "building-the-code-documentation-locally"]], "Future changes": [[3, "future-changes"]], "Framework": [[3, "framework"]], "Getting Started": [[4, "getting-started"]], "First run": [[4, "first-run"]], "Tutorial": [[4, "tutorial"]], "Manual run": [[4, "manual-run"]], "Analyzing results": [[4, "analyzing-results"]], "Hardware Architecture": [[5, "hardware-architecture"]], "Operational Unit": [[5, "operational-unit"]], "Operational Array": [[5, "operational-array"]], "Memory Instance": [[5, "memory-instance"]], "Memory Hierarchy": [[5, "memory-hierarchy"]], "Core": [[5, "core"]], "hardware Accelerator Model": [[5, "hardware-accelerator-model"]], "Modelled examples": [[5, "modelled-examples"]], "Specific settings": [[5, "specific-settings"]], "References": [[5, "references"]], "Welcome to ZigZag\u2019s documentation!": [[6, "welcome-to-zigzag-s-documentation"]], "Contents:": [[6, null]], "Indices and tables": [[6, "indices-and-tables"]], "Installation": [[7, "installation"]], "Environment": [[7, "environment"]], "Basic Setup": [[7, "basic-setup"]], "Linux/Mac": [[7, "linux-mac"]], "Windows": [[7, "windows"]], "Installing ZigZag": [[7, "installing-zigzag"]], "Installing as a Package": [[7, "installing-as-a-package"]], "Manual Clone": [[7, "manual-clone"]], "Prerequisites": [[7, "prerequisites"]], "Installation Steps": [[7, "installation-steps"]], "Mapping": [[8, "mapping"]], "User-defined mapping constraints": [[8, "user-defined-mapping-constraints"]], "Outputs": [[9, "outputs"]], "SimpleSaveStage": [[9, "simplesavestage"]], "CompleteSaveStage": [[9, "completesavestage"]], "Creating a custom SaveStage": [[9, "creating-a-custom-savestage"]], "Publications": [[10, "publications"]], "The general idea of ZigZag": [[10, "the-general-idea-of-zigzag"]], "Detailed latency model explanation": [[10, "detailed-latency-model-explanation"]], "The new temporal mapping search engine": [[10, "the-new-temporal-mapping-search-engine"]], "Different design space exploration case studies": [[10, "different-design-space-exploration-case-studies"]], "Extension to support cross-layer depth-first scheduling": [[10, "extension-to-support-cross-layer-depth-first-scheduling"]], "Extension to support multi-core layer-fused scheduling": [[10, "extension-to-support-multi-core-layer-fused-scheduling"]], "Stages": [[11, "stages"]], "Introduction": [[11, "introduction"]], "The main entry point": [[11, "the-main-entry-point"]], "The sequential call of stages": [[11, "the-sequential-call-of-stages"]], "The back passing of results": [[11, "the-back-passing-of-results"]], "Implemented stages": [[11, "implemented-stages"]], "Input parser stages": [[11, "input-parser-stages"]], "Iterator stage": [[11, "iterator-stage"]], "Plot stages": [[11, "plot-stages"]], "Reduce stages": [[11, "reduce-stages"]], "Optimization stages": [[11, "optimization-stages"]], "Save and dump stages": [[11, "save-and-dump-stages"]], "Temporal mapping stages": [[11, "temporal-mapping-stages"]], "Spatial mapping stages": [[11, "spatial-mapping-stages"]], "Cost model stages": [[11, "cost-model-stages"]], "Hardware modification stages": [[11, "hardware-modification-stages"]], "Creating your custom stage": [[11, "creating-your-custom-stage"]], "User Guide": [[12, "user-guide"]], "Visualization": [[13, "visualization"]], "Temporal mapping": [[13, "temporal-mapping"]], "Energy and latency breakdown": [[13, "energy-and-latency-breakdown"]], "Workload": [[14, "workload"]], "Onnx models": [[14, "onnx-models"]], "Supported onnx operators": [[14, "supported-onnx-operators"]], "Controlling the quantization": [[14, "controlling-the-quantization"]], "Saving your onnx model with external data": [[14, "saving-your-onnx-model-with-external-data"]], "Inferring an onnx model\u2019s shapes": [[14, "inferring-an-onnx-model-s-shapes"]], "Manual layer definition": [[14, "manual-layer-definition"]]}, "indexentries": {}}) \ No newline at end of file